idEmpleado | Nombres | Apellidos | idDepartamento |
13 | Juan Alejandro | Gómez | 132 |
58 | María Camila | Rodríguez | 678 |
20 | Lusa Patricia | Henao | 74 |
71 | Jaime Alberto | Castaño | NULL |
idDepartamento | Departamento |
132 | Recursos humanos |
678 | Administrativo |
74 | Gestión |
26 | Ventas |
- INNER JOIN
Select e.Nombres,e.Apellidos,d.Departamento From Empleado e Inner Join Departamento d ON d.idDepartamento=e.idDepartamento
Si analizamos la estructura de la clausula FROM, colocamos el nombre de una tabla y su respectivo alias seguido de la sentencia INNER JOIN, luego el nombre de la tabla que vamos a intersectar con otro alias diferente, la clausula ON que nos permite definir por que campo queremos realizar el cruce. Si queremos trabajar mas tablas, basta con adicionar más sentencias INNER JOIN sin olvidar los ON.
El resultado de nuestra consulta sera el siguiente:
Nombres | Apellidos | Departamento |
Juan Alejandro | Gómez | Recursos humanos |
María Camila | Rodríguez | Administrativo |
Luisa Patricia | Henao | Gestión |
Como podemos observar, no estamos recibiendo los datos del trabajador Jaime Alberto Castaño porque no tiene un id de departamento asociado.
- LEFT OUTER JOIN - LEFT JOIN
Este tipo de join permite consultar todos los datos de la tabla que tengamos a la izquierda de la sentencia LEFT, relacionada con los datos que pueda tener con otra tabla. Para nuestro caso utilizamos el campo idDepartamento para unir las dos tablas. Veamos la estructura:
Select e.Nombres,e.Apellidos,d.Departamento From Empleado e Left Join Departamento d ON d.idDepartamento=e.idDepartamentoComo podrán ver, la estructura es similar a la del INNER JOIN aunque su funcionamiento es diferente. Su escritura puede o no incluir la palabla OUTER, sin alterar el resultado. A continuación visualizaremos el resultado del query:
Nombres | Apellidos | Departamento |
Juan Alejandro | Gómez | Recursos humanos |
María Camila | Rodríguez | Administrativo |
Luisa Patricia | Henao | Gestión |
Jaime Alberto | Castaño | NULL |
Si analizamos el resultado de la consulta, podremos apreciar que retorno todos los valores de la tabla Empleado, incluyendo el registro de Jaime Castaño, quien no tiene una dependencia asociada.
- RIGHT OUTER JOIN - RIGHT JOIN
Es similar al LEFT, aunque permite consultar todos los datos de la tabla que tengamos a la derecha de la sentencia RIGHT, relacionada con los datos que pueda tener con otra tabla. Nuestro query entonces sera el siguiente:
Select e.Nombres,e.Apellidos,d.Departamento From Empleado e Right Join Departamento d ON d.idDepartamento=e.idDepartamentoAl igual que en el caso anterior, su escritura puede o no contener la palabra OUTER. El resultado que obtendremos es el siguiente:
Nombres | Apellidos | Departamento |
Juan Alejandro | Gómez | Recursos humanos |
María Camila | Rodríguez | Administrativo |
Luisa Patricia | Henao | Gestión |
NULL | NULL | Ventas |
Si analizamos el resultado de la consulta, podremos apreciar que retorno todos los valores de la tabla Departamento, incluyendo la dependencia de ventas, que no tiene empleados asociados.
- FULL OUTER JOIN
Es un join especial que permite consultar los datos de las dos tablas que se están uniendo independientemente de que hayan registros en cada una de ellas que no se puedan unir entre si. Nuestro query entonces sera el siguiente:
Select e.Nombres,e.Apellidos,d.Departamento From Empleado e Full Outer Join Departamento d ON d.idDepartamento=e.idDepartamento
El resultado de nuestra consulta es el siguiente:
Nombres | Apellidos | Departamento |
Juan Alejandro | Gómez | Recursos humanos |
María Camila | Rodríguez | Administrativo |
Luisa Patricia | Henao | Gestión |
Jaime Alberto | Castaño | NULL |
NULL | NULL | Ventas |
Si analizamos el resultado de la consulta, podremos apreciar que retorno todos los valores de las dos tablas, incluyendo al empleado Jaime Alberto Castaño y la dependencia de ventas, que no tienen asociaciones.
A través de un Cross Join podemos obtener un punto cruz entre dos tablas. Nuestro join quedaría construido de la siguiente forma:
Select e.Nombres,e.Apellidos,d.Departamento From Empleado e Cross Join Departamento d
El resultado de nuestra consulta es el siguiente:
Nombres | Apellidos | Departamento |
Juan Alejandro | Gómez | Recursos humanos |
María Camila | Rodríguez | Administrativo |
Luisa Patricia | Henao | Gestión |
Jaime Alberto | Castaño | Ventas |
Juan Alejandro | Gómez | Administrativo |
María Camila | Rodríguez | Gestión |
Luisa Patricia | Henao | Ventas |
Jaime Alberto | Castaño | Recursos humanos |
Juan Alejandro | Gómez | Gestión |
María Camila | Rodríguez | Ventas |
Luisa Patricia | Henao | Recursos humanos |
Jaime Alberto | Castaño | Administrativo |
Juan Alejandro | Gómez | Ventas |
María Camila | Rodríguez | Recursos humanos |
Luisa Patricia | Henao | Administrativo |
Jaime Alberto | Castaño | Gestión |
Por ser un producto cartesiano, la escritura de este join no involucra una clausula ON, dado que no queremos relacionar las tablas por un campo especifico. Analizando el resultado de la consulta, observaremos que obtenemos todas las posibles combinaciones entre los registros de las tablas.
No hay comentarios:
Publicar un comentario