Únase a varias tablas mediante la unión interna

Para recuperar datos de una sola tabla usamos operaciones SELECT y PROJECTION pero para recuperar datos de varias tablas usamos JOINS en SQL . Hay diferentes tipos de JOINS en SQL . En este artículo, solo se analizan   las operaciones en combinaciones internas en MSSQL .

Inner Join es el método de recuperación de datos de varias tablas en función de una condición requerida y las condiciones necesarias son que debe haber columnas comunes o columnas coincidentes entre las dos tablas de la base de datos y los tipos de datos de las columnas deben ser los mismos.

Veamos cómo unir dos tablas y tres tablas usando Inner Join en MSSQL paso a paso.

Creando una base de datos:

Creando una base de datos GeeksForGeeks usando la siguiente consulta SQL de la siguiente manera.

 CREATE DATABASE GeeksForGeeks;

Usando la base de datos:

Usando la base de datos del estudiante usando la siguiente consulta SQL de la siguiente manera.

USE GeeksForGeeks;

Crear tres tablas estudiante, curso y profesor con consulta SQL de la siguiente manera:

CREATE TABLE student
( stu_id varchar(10),
 stu_name varchar(20),
 course_id varchar(10),
 branch varchar(20),
 lecturer_id varchar(10)
);

CREATE TABLE course
(
  course_id varchar(10),
  course_name varchar(20)
);

CREATE TABLE lecturer
(
  lecturer_id varchar(10),
  lecturer_name varchar(20)
);

 Verificando la base de datos:

Para ver la descripción de las tres tablas en la base de datos GeeksForGeeks, use la siguiente consulta SQL de la siguiente manera.

EXEC sp_columns student;
EXEC sp_columns course;
EXEC sp_columns lecturer;

Insertando datos en las tres tablas:

Insertar filas en la tabla de estudiantes usando la siguiente consulta SQL de la siguiente manera:

INSERT INTO student VALUES
('1901401','DEVA','CS1003','C.S', 'P4002'),
('1901402','HARSH','CS1001','C.S', 'P4001'),
('1901403','ABHISHEK','CS1001','C.S', 'P4001'),
('1901404','GARVIT','CS1002','C.S', 'P4003'),
('1901405','SAMPATH','CS1003','C.S', 'P4002'),
('1901406','SATWIK','CS1002','C.S', 'P4003'),
('1901407','GUPTA','CS1001','C.S', 'P4001'),
('1901408','DAS','CS1003','C.S', 'P4002');

Insertar filas en la tabla del curso usando la siguiente consulta SQL de la siguiente manera:

INSERT INTO course VALUES
('CS1001', 'DBMS'),
('CS1002', 'O.S'),
('CS1003', 'C.N'),
('CS1004', 'M.L'),
('CS1005', 'A.I');

Insertar filas en la tabla del profesor usando la siguiente consulta SQL de la siguiente manera:

INSERT INTO lecturer VALUES
('P4001', 'RAMESH'),
('P4002', 'RAVINDER'),
('P4003', 'RAHUL SHARMA'),
('P4004', 'PRADEEP KUMAR'),
('P4005', 'SRINIVASA RAO');

Verificando los datos insertados:

 Ver las tres tablas después de insertar filas utilizando la siguiente consulta SQL de la siguiente manera.

SELECT* FROM student;
SELECT* FROM course;
SELECT* FROM lecturer;

Aplicando uniones internas:

La sintaxis para combinaciones múltiples:

SELECT column_name1,column_name2,..
FROM table_name1
INNER JOIN 
table_name2
ON condition_1
INNER JOIN 
table_name3
ON condition_2
INNER JOIN 
table_name4
ON condition_3
.
.
.

Nota: Al seleccionar solo columnas particulares, use table_name . column_name cuando hay los mismos nombres de columna en las dos tablas; de lo contrario, obtendrá un error ambiguo .

Consultas:

Unión interna en dos tablas estudiante y curso:

SELECT *
FROM student  
INNER JOIN  
course  
ON  
student.course_id = course.course_id;

Aparecen todas las columnas de 2 tablas que cumplen la condición de igualdad

Inner Join en tres tablas estudiante, curso y profesor:

SELECT *
FROM student  
INNER JOIN  
course  
ON  
student.course_id = course.course_id
INNER JOIN  
lecturer  
ON  
student.lecturer_id = lecturer.lecturer_id;

Aparecen todas las columnas de 3 tablas que cumplen la condición de igualdad

Unión interna en tres tablas estudiante, curso, profesor pero seleccionando columnas particulares de una tabla en particular.

SELECT stu_id, stu_name,course.course_id,course.course_name,
lecturer.lecturer_name
FROM student  
INNER JOIN  
course  
ON  
student.course_id = course.course_id
INNER JOIN  
lecturer  
ON  
student.lecturer_id = lecturer.lecturer_id;

Publicación traducida automáticamente

Artículo escrito por lokeshpotta20 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *