IOKELU
Nivel: Intermedio
💡 Prueba las consultas:
Puedes ejecutar cualquier JOIN en nuestra consola interactiva: Abrir consola SQL →

FULL JOIN en SQL: combina todas las filas de ambas tablas

FULL JOIN devuelve todas las filas de ambas tablas, coincidan o no. Es ideal para reportes completos, análisis de datos faltantes y comparaciones entre tablas.

1. ¿Qué es FULL JOIN?

FULL JOIN devuelve todas las filas de ambas tablas: - Coincidencias - Filas solo de la izquierda - Filas solo de la derecha Las filas sin coincidencia muestran valores NULL en la tabla opuesta.


SELECT u.nombre, p.producto
FROM usuarios u
FULL JOIN pedidos p ON u.id = p.usuario_id;
    

2. Sintaxis de FULL JOIN


SELECT columnas
FROM tabla1
FULL JOIN tabla2
    ON tabla1.columna = tabla2.columna;
    

3. Ejemplo básico


SELECT u.nombre, p.producto
FROM usuarios u
FULL JOIN pedidos p 
    ON u.id = p.usuario_id;
    

4. Detectar filas sin coincidencias

FULL JOIN permite detectar datos faltantes en ambas tablas.


SELECT u.nombre, p.producto
FROM usuarios u
FULL JOIN pedidos p 
    ON u.id = p.usuario_id
WHERE u.id IS NULL OR p.id IS NULL;
-- Filas sin coincidencias
    

5. FULL JOIN con múltiples tablas


SELECT u.nombre, p.producto, c.ciudad
FROM usuarios u
FULL JOIN pedidos p ON u.id = p.usuario_id
FULL JOIN ciudades c ON u.ciudad_id = c.id;
    

6. FULL JOIN con condiciones adicionales


SELECT u.nombre, p.producto
FROM usuarios u
FULL JOIN pedidos p 
    ON u.id = p.usuario_id
    AND p.estado = 'Enviado';
    

7. Ejemplos prácticos


SELECT e.nombre, d.nombre AS departamento
FROM empleados e
FULL JOIN departamentos d ON e.depto_id = d.id;

SELECT p.producto, c.nombre AS categoria
FROM productos p
FULL JOIN categorias c ON p.categoria_id = c.id;

SELECT u.nombre, p.producto
FROM usuarios u
FULL JOIN pedidos p ON u.id = p.usuario_id
WHERE u.nombre IS NULL OR p.producto IS NULL;
    

8. Ejercicios para practicar

9. Mini‑proyecto: Reporte completo de usuarios y pedidos


SELECT u.nombre, p.producto
FROM usuarios u
FULL JOIN pedidos p ON u.id = p.usuario_id;
    

10. Errores comunes

11. Preguntas frecuentes

¿FULL JOIN es común?

Menos que INNER o LEFT, pero muy útil para reportes completos.

¿Puedo unir más de dos tablas?

Sí, puedes unir tantas como necesites.


Siguiente guía

SQL Intermedio – UNION →