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:
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, )
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
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:
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:
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
No hay comentarios:
Publicar un comentario