FULL OUTER JOIN en SQL
La cláusula
FULL OUTER JOIN
en SQL devuelve todas las filas de ambas tablas
: las que coinciden y las que no tienen pareja. Donde falta coincidencia, las columnas de la otra tabla son
NULL
.
FULL OUTER JOIN en SQL es una pieza habitual del flujo SQL: consultar, filtrar, agrupar o modificar datos. Cada ejemplo usa tablas de demostración para que puedas experimentar sin riesgo.
Cómo practicar: ejecuta la consulta tal cual, revisa columnas y tipos, luego cambia un filtro o un alias y vuelve a ejecutar.
FULL OUTER JOIN en SQL es una pieza habitual del flujo SQL: consultar, filtrar, agrupar o modificar datos. Cada ejemplo usa tablas de demostración para que puedas experimentar sin riesgo.
Cómo practicar: ejecuta la consulta tal cual, revisa columnas y tipos, luego cambia un filtro o un alias y vuelve a ejecutar.
Combina el comportamiento de LEFT JOIN y RIGHT JOIN en una sola consulta. El resultado puede ser grande si las tablas tienen muchas filas sin pareja.
Sintaxis FULL OUTER JOIN en SQL
La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.
Plantilla
SELECT columna1, columna2, ...
FROM tabla_izquierda
FULL OUTER JOIN tabla_derecha
ON tabla_izquierda.clave = tabla_derecha.clave;
FULL OUTER JOIN
entran coincidencias y filas huérfanas de las dos tablas.
Ejemplo FULL OUTER JOIN en SQL
Todos los clientes y todos los pedidos, estén o no emparejados:
Nombre de cliente e ID de pedido
SELECT Clientes.Nombre_Cliente, Pedidos.ID_Pedido
FROM Clientes
FULL OUTER JOIN Pedidos ON Clientes.ID_Cliente = Pedidos.ID_Cliente
ORDER BY Clientes.Nombre_Cliente;
Resultado:
diez filas — clientes sin pedido muestran
NULL
en
ID_Pedido
.
| Nombre_Cliente | ID_Pedido |
|---|---|
| Ana García | 1 |
| Carlos Ruiz | NULL |
| Elena Torres | 3 |
| … 7 filas más (10 en total) | |
Tablas demo para FULL OUTER JOIN
Tabla Pedidos (demo)
Observa qué columnas devuelve la consulta y cómo se nombran con AS. Ese alias es lo que verás en la cuadrícula del editor.
| ID_Pedido | ID_Cliente | ID_Empleado | Fecha |
|---|---|---|---|
| 1 | 1 | 1 | 2024-01-15 |
| 2 | 3 | 2 | 2024-01-18 |
| 3 | 5 | 1 | 2024-02-02 |
| 4 | 2 | 3 | 2024-02-10 |
| 5 | 6 | 4 | 2024-02-14 |
| ID_Cliente | Nombre_Cliente | Ciudad | Pais |
|---|---|---|---|
| 1 | Ana García | Madrid | España |
| 2 | Luis Pérez | Barcelona | España |
| 3 | María López | Valencia | España |
| 4 | Carlos Ruiz | Madrid | España |
| 6 | John Smith | London | UK |
| … 5 clientes más en la demo (10 en total) | |||
FULL OUTER JOIN con Empleados
Empleados con y sin pedidos asignados:
Empleado y pedido
SELECT Empleados.Nombre, Empleados.Apellido, Pedidos.ID_Pedido
FROM Empleados
FULL OUTER JOIN Pedidos ON Empleados.ID_Empleado = Pedidos.ID_Empleado
ORDER BY Empleados.Nombre;
Resultado:
Isabel Ruiz aparece con
ID_Pedido NULL
porque no tiene pedidos en la demo.
Tabla Empleados (demo)
Observa qué columnas devuelve la consulta y cómo se nombran con AS. Ese alias es lo que verás en la cuadrícula del editor.
| ID_Empleado | Nombre | Apellido | Ciudad |
|---|---|---|---|
| 1 | Laura | Martín | Madrid |
| 2 | Pablo | Sánchez | Barcelona |
| 3 | Carmen | López | Valencia |
| 4 | Diego | Fernández | Sevilla |
| 5 | Isabel | Ruiz | Bilbao |
Resumen FULL OUTER JOIN
-
FULL OUTER JOINconserva filas de las dos tablas. -
Sin coincidencia, las columnas de la otra tabla son
NULL. -
En SQLite de la demo está soportado; en otros motores antiguos puede simularse con
UNIONdeLEFTyRIGHT JOIN. - Siguiente paso: SELF JOIN .
Cómo practicar en el editor
1. Pulsa Pruébalo tú mismo en un ejemplo.
2. Cambia un filtro, columna o literal.
3. Ejecuta y compara el resultado con la tabla de ejemplo.
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.