Tema SQL
FULL OUTER JOIN
Todas las filas de ambas tablas; NULL donde no hay pareja.
Descripción
Combina LEFT y RIGHT en un solo resultado. No todos los motores lo implementan igual (p. ej. MySQL sin soporte nativo histórico); alternativa: UNION de LEFT y RIGHT (manual §13.4).
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
SELECT columnas
FROM a
FULL OUTER JOIN b ON condición;
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- FULL OUTER JOIN
- Preserva filas de ambos lados; columnas sin coincidencia en NULL.
Ejemplos
Ejemplo 1
SELECT c.nombre, p.id, p.total
FROM clientes c
FULL OUTER JOIN pedidos p ON c.id = p.cliente_id;
Ejemplo 2
-- Si el motor no tiene FULL OUTER: UNION ALL de LEFT y RIGHT complementados
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.