Joins: Combinación de Tablas
Un Join es una operación que permite combinar datos de dos o más tablas basándose en una relación lógica entre las columnas de las tablas. Es una herramienta esencial en Oracle SQL para trabajar con datos distribuidos en varias tablas, permitiendo generar informes detallados y responder preguntas complejas.
Tipos de Joins
- Inner Join: Devuelve los registros que tienen coincidencias en ambas tablas. Este es el tipo de join más común y se utiliza cuando se desea obtener sólo las filas donde existe correspondencia.
SELECT empleados.nombre, departamentos.nombre_departamento
FROM empleados
INNER JOIN departamentos ON empleados.id_departamento = departamentos.id_departamento;
- Utiliza una condición definida con
ON para emparejar registros.
- Si no hay coincidencia en ambas tablas, no se incluirá la fila en el resultado.
- Left Join (Outer Join): Devuelve todos los registros de la tabla izquierda y las coincidencias de la tabla derecha. Si no hay coincidencias, devuelve valores nulos para las columnas de la tabla derecha.
SELECT empleados.nombre, departamentos.nombre_departamento
FROM empleados
LEFT JOIN departamentos ON empleados.id_departamento = departamentos.id_departamento;
- Ideal para encontrar registros en una tabla que no tienen correspondencia en otra.
- Right Join (Outer Join): Similar al Left Join, pero devuelve todos los registros de la tabla derecha y las coincidencias de la tabla izquierda.
SELECT empleados.nombre, departamentos.nombre_departamento
FROM empleados
RIGHT JOIN departamentos ON empleados.id_departamento = departamentos.id_departamento;
- Se utiliza menos frecuentemente que el Left Join, pero tiene aplicaciones similares.
- Full Outer Join: Devuelve todos los registros de ambas tablas, rellenando con valores nulos donde no haya coincidencias.
SELECT empleados.nombre, departamentos.nombre_departamento
FROM empleados
FULL OUTER JOIN departamentos ON empleados.id_departamento = departamentos.id_departamento;
- útil para obtener una vista completa de ambas tablas, incluidas las filas que no coinciden.
- Cross Join: Realiza el producto cartesiano de las dos tablas, devolviendo todas las combinaciones posibles de registros.
SELECT empleados.nombre, departamentos.nombre_departamento
FROM empleados
CROSS JOIN departamentos;
- Puede generar grandes volúmenes de datos, por lo que debe utilizarse con precaución.
- Self Join: Es un join en el que una tabla se une consigo misma. Este tipo de join es útil para analizar relaciones jerárquicas dentro de una tabla.