• Saltar a la navegación principal
  • Saltar al contenido principal

DBA dixit

Recursos para el administrador y el desarrollador de bases de datos

  • Lo básico
  • SQL
  • Administración
  • Herramientas
  • Buenas prácticas
  • Performance & Tuning
Usted está aquí: Inicio / SQL / FULL OUTER join

FULL OUTER join

FULL OUTER join es el último de los join que permite combinar los datos de dos o más tablas.  Permite extraer información de dos tablas, pudiendo escoger entre incluir -o no- la intersección de las mismas.

FULL OUTER join con todos los registros de ambas tablas

En este caso se hace un Select a la tabla A con un FULL OUTER join hacia la tabla B, y los registros resultantes son todos los de A y los de B, es decir, incluye la intersección de ambas.

La estructura general de este join es como sigue

SELECT campos FROM A
FULL OUTER JOIN B ON A.llave=B.llave

Datos de prueba

Para ejemplificar estos casos se usarán las mismas tablas y registros que se ocuparon al revisar los demás tipos de join (left, right e inner join):

Usando las tablas de PERSONAL y DIRECCIONES se puede hacer un FULL OUTER de la siguiente manera

SELECT A.*, B.* FROM personal A
FULL OUTER JOIN direcciones B ON A.id = B.id

De esta manera, se obtienen los registros que están en A y no en B (primeros dos registros), los que pertenecen a la intersección (3, 4 y 5) y aquellos que están en B y no en A (los últimos dos registros)


FULL OUTER JOIN sin los registros de la intersección de la primera y segunda tabla

En este caso se utiliza la cláusula WHERE para hacer una variación del FULL OUTER join que elimine aquellos registros que pertenecen a la intersección de las tablas involucradas:

SELECT A.*, B.*
FROM personal A
RIGHT JOIN direcciones B
ON A.id = B.id
WHERE A.id IS NULL or B.id IS NULL

Como se puede ver, solo se obtienen los registros que están en la primera o en la segunda  tabla, pero los registros que están em abas (la intersección). En este caso se ve claramente por que en todos los registros hasy campos nulos (los que están en una tabla, pero no en la otra).

Publicado en: SQL

  • Lo básico
  • SQL
  • Administración
  • Herramientas
  • Buenas prácticas
  • Performance & Tuning

Copyright © 2025 · Wellness Pro on Genesis Framework · WordPress · Acceder