Clase de JOIN en SQL
¿Qué es un JOIN?
El comando JOIN en SQL se usa para combinar filas de dos o más tablas en función de una columna
relacionada entre ellas, normalmente una clave primaria y una clave foránea.
1. INNER JOIN
Devuelve solo las filas que tienen coincidencias en ambas tablas.
SELECT empleados.nombre, departamentos.nombre
FROM empleados
INNER JOIN departamentos ON empleados.id_departamento = departamentos.id;
Devuelve los empleados que tienen asignado un departamento.
2. LEFT JOIN
Devuelve todas las filas de la tabla izquierda, y las coincidencias de la tabla derecha. Si no hay coincidencia,
devuelve NULL.
SELECT empleados.nombre, departamentos.nombre
FROM empleados
LEFT JOIN departamentos ON empleados.id_departamento = departamentos.id;
Devuelve todos los empleados, aunque no tengan departamento asignado.
3. RIGHT JOIN
Devuelve todas las filas de la tabla derecha, y las coincidencias de la izquierda.
Clase de JOIN en SQL
SELECT empleados.nombre, departamentos.nombre
FROM empleados
RIGHT JOIN departamentos ON empleados.id_departamento = departamentos.id;
Devuelve todos los departamentos, aunque no tengan empleados asignados.
4. FULL OUTER JOIN
Devuelve todas las filas de ambas tablas, y donde no hay coincidencias, muestra NULL.
SELECT empleados.nombre, departamentos.nombre
FROM empleados
FULL OUTER JOIN departamentos ON empleados.id_departamento = departamentos.id;
Devuelve todos los empleados y todos los departamentos, relacionándolos donde sea posible.
5. CROSS JOIN
Devuelve el producto cartesiano: cada fila de la primera tabla se combina con todas las filas de la segunda.
SELECT empleados.nombre, proyectos.nombre
FROM empleados
CROSS JOIN proyectos;
Devuelve todas las combinaciones posibles de empleados y proyectos.
Recomendaciones prácticas
- Siempre asegúrate de usar correctamente las claves foráneas y las condiciones de unión.
Clase de JOIN en SQL
- Utiliza alias para mejorar la legibilidad:
SELECT e.nombre, d.nombre
FROM empleados e
JOIN departamentos d ON e.id_departamento = d.id;