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

  1. 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;

  1. 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;

  1. 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;

  1. 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;

  1. 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;

  1. 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.