Como Hacer un Left Join en SQL Server

En este artículo te explico Como hacer un Left Join en Sql Server,

Un Left Join en SQL significa que al cruzar dos tablas A (Izquierda) y B (Derecha) nos interesa que todos los resultados de la tabla A se obtengan aunque algunos resultados de B no coincidan al relacionar las dos tablas por el campo relacionado.

Pero como es dificil entenderlo con Teoría voy a explicarlo con un caso práctico.

Tenemos la tabla Empleados que contiene el ID de los Empleados y su nombre:

Como hacer un Left Join en SQL Server

Por otra parte tenemos la tabla Cantidad_Hijos en la que se almacena el ID del empleado y la cantidad de hijos que tiene cada uno de los empleados (si es que tienen hijos, )


Al realizar un Left Join de la tabla empleados con la tabla Cantidad_Hijos, relacionándolos por el campo en común id_empleado este sería el resultado:

Resultado de Left Join

Como puedes ver en el ejemplo en la tabla empleados se dieron de alta 4 personas, sin embargo el empleado con el id 4  (Lucas) no tiene hijos, entonces en la tabla cantidad_hijos no existe su id, es por eso que en el resultado del left join el campo id_empleado y el campo hijos aparecen con valor NULL

Te dejo el script para que puedas crear las tablas y realizar el ejemplo por ti mismo:

-- CREANDO LA TABLA EMPLEADOS
CREATE TABLE EMPLEADOS(
ID_EMPLEADO INT NOT NULL,
NOMBRE VARCHAR(100) NOT NULL)

-- AÑADIENDO VALORES A LA TABLAS EMPLEADOS
INSERT INTO EMPLEADOS SELECT 1 , 'JUAN'
INSERT INTO EMPLEADOS SELECT 2 , 'PEDRO'
INSERT INTO EMPLEADOS SELECT 3 , 'JACINTO'
INSERT INTO EMPLEADOS SELECT 4 , 'LUCAS'

-- CREANDO LA TABLA CANTIDAD_HIJOS
CREATE TABLE CANTIDAD_HIJOS(
ID_EMPLEADO INT NOT NULL,
HIJOS INT NOT NULL)

-- AÑADIENDO VALORES A LA TABLAS CANTIDAD_HIJOS
INSERT INTO CANTIDAD_HIJOS SELECT 1 ,2
INSERT INTO CANTIDAD_HIJOS SELECT 2 ,1
INSERT INTO CANTIDAD_HIJOS SELECT 3 ,3

-- APLICANDO EL LEFT JOIN 
SELECT E.*, CH.*
FROM EMPLEADOS AS E LEFT JOIN 
CANTIDAD_HIJOS AS CH ON
E.ID_EMPLEADO = CH.ID_EMPLEADO


Como hacer un Left Join en Sql Server

No hay comentarios:

Publicar un comentario