Cómo unir varias tablas a la izquierda en SQL

Left Join es una de las palabras clave utilizadas al escribir consultas en SQL. En SQL, normalmente usamos Join con el fin de formar una nueva tabla extrayendo datos comunes como filas, registros o tuplas de ambas tablas que tienen registros coincidentes en general. 

Aquí, cuando se trata de Left Join en SQL, solo devuelve todos los registros, tuplas o filas de la tabla de la izquierda y solo los registros que coinciden con la tabla de la derecha.

Sintaxis para la combinación izquierda:

SELECT column names
FROM table1
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;

 Nota: Por ejemplo, si tiene una tabla izquierda con 10 filas, se garantiza que tendrá al menos 10 filas después de aplicar la operación de combinación en dos tablas.

Considere dos tablas: 

1. Empleado (Mesa Izquierda) :

Emp_Id Primer nombre Apellido Género Años Fecha_de_unión
1 pranay Thanneru METRO 45 2000-10-09
2 Santhosh prabhu METRO 48 1999-07-10
3 María clara F 34 2008-08-26
4 jane Vatsal F 30 2006-02-31
5 Hardik prabhu METRO 22 2012-07-23

 2. Proyectos (Tabla derecha):

identificación fecha Proyecto No Emp_id No_de_horas_trabajadas
1 2005-03-15 147 3 162
2 2005-03-16 232 2 192
3 2005-03-17 276 1 198

Para unir estas dos tablas y obtener información común necesitamos usar la siguiente consulta

SELECT E.Emp_id, E.First_Name, E.Last_Name, E.Gender, E.age, E.Date_of_join,    
       P.date AS Project_Assigned_date, P.No_of_hours_worked AS hours_worked
FROM Employee E
LEFT JOIN Projects P
ON E.Emp_id = P.Emp_id
GROUP BY E.Emp_id;

Después de la ejecución de la consulta, la tabla obtenida será como:

Emp_Id Primer nombre Apellido Género Años Fecha_de_unión Proyecto_Asignado_fecha horas trabajadas
1 pranay Thanneru METRO 45 2000-10-09 2005-03-17 198
2 Santhosh prabhu METRO 48 1999-07-10 2005-03-16 192
3 María clara F 34 2008-08-26 2005-03-15 162
4 jane Vatsal F 30 2006-02-31 [NULO] [NULO]
5 Hardik prabhu METRO 22 2012-07-23 [NULO] [NULO]
  • Una vez después de obtener la tabla, puede ver que Emp_id que no está asignado para un proyecto cuyo Project_Assigned_date se ha convertido en NULL y No_of_hours_worked también se convirtió en NULL porque el empleado no ha asignado nada que hacer.
  • Aquí Left Join significa en el sentido basado en las tablas anteriores, tomó datos de las filas de la tabla que coinciden y también devolvió los valores para las filas cuyos datos no están presentes en la Tabla 2 como NULL porque necesitamos considerar todos los datos de Mesa izquierda.

Múltiples LEFT JOIN en una consulta:
A veces es necesario LEFT JOIN en más de dos tablas para obtener los datos necesarios para análisis específicos. Afortunadamente, la palabra clave LEFT JOIN se puede usar con MÚLTIPLES TABLAS en SQL.

Considere una tabla llamada Salario:

identificación  Emp_id Salario_Inc Fecha
1 5 50000 2015-01-01
2 1 65000 2015-01-01
3 2 55000 2015-01-01

Aquí combinamos los datos de estas tablas Empleado, Proyectos y Salario.

Para hacer esto, la consulta debe escribirse en el siguiente formato:

SELECT E.Emp_id, E.First_Name, E.Last_Name, E.Gender, E.age, E.Date_of_join,  
   P.No_of_hours_worked AS hours_worked, S.Salary_inc AS Salary_Increment
FROM Employee E
LEFT JOIN Projects P
ON E.Emp_id = P.Emp_id
LEFT JOIN Salary S
ON E.Emp_id = S.Emp_id;

Y la tabla resultante se ve después de múltiples Left Join :

Emp_id Primer nombre Apellido Género años Fecha_de_unión horas trabajadas Incremento de salario
1 pranay Thanneru METRO 45 2000-10-09 198 65000
2 Santhosh prabhu METRO 48 1999-07-10 192 55000
3 María clara F 34 2008-08-26 162 [NULO]
4 jane Vatsal F 30 2006-02-31 [NULO] [NULO]
5 Hardik prabhu METRO 22 2012-07-23 [NULO] 50000

Por lo tanto, puede ver que hemos combinado los datos de tres tablas en una sola tabla usando Left Join varias veces.

Considere una tabla más llamada Experiencia:

identificación Emp_nombre Experiencia
1 pranay 5
2 Santhosh 4
3 María 3

Aquí combinamos los datos de estas tablas Empleado, Proyectos y Experiencia.

Para hacer esto, la consulta debe escribirse en el siguiente formato:

SELECT E.Emp_id, E.First_Name, E.Last_Name, P.date AS Project_Assigned_date, 
E1.Experience AS EXP
FROM Employee E
LEFT JOIN Projects
 P
ON E.Emp_id = P.Emp_id
LEFT JOIN Experience E1
ON E.Emp_id = E1.id;

Y la tabla resultante se ve después de varias uniones izquierdas:

Emp_id Primer nombre Apellido Proyecto_Asignado_fecha Exp
1 pranay Thanneru 2005-03-17 5
2 Santhosh prabhu 2005-03-16 4
3 María clara 2005-03-15 3
4 jane Vatsal [NULO] [NULO]
5 Hardik prabhu [NULO] [NULO]

Como puede ver, LEFT JOIN en SQL se puede usar con varias tablas. 

Publicación traducida automáticamente

Artículo escrito por pranaythanneru 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 *