Palabra clave SQL FULL OUTER JOIN
los FULL OUTER JOIN
La palabra clave devuelve todos los registros cuando hay una coincidencia en los registros de la tabla izquierda (tabla1) o derecha (tabla2).
Propina: FULL OUTER JOIN
y
FULL JOIN
son lo mismo.
Sintaxis de FULL OUTER JOIN
SELECCIONE column_name (s)
DE tabla 1
UNIÓN EXTERIOR COMPLETA Tabla 2
SOBRE table1.column_name = table2.column_name
DÓNDE condición;
Nota: FULL OUTER JOIN
potencialmente puede devolver conjuntos de resultados muy grandes!
Base de datos de demostración
En este tutorial usaremos la conocida base de datos de muestra Northwind.
A continuación se muestra una selección de la tabla «Clientes»:
Identificación del cliente | Nombre del cliente | Nombre de contacto | Dirección | Ciudad | Código postal | País |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | María Anders | Obere Str. 57 | Berlina | 12209 | Alemania |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México DF | 05021 | México |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México DF | 05023 | México |
Y una selección de la tabla «Pedidos»:
Solicitar ID | Identificación del cliente | ID de empleado | Fecha de orden | ShipperID |
---|---|---|---|---|
10308 | 2 | 7 | 1996-09-18 | 3 |
10309 | 37 | 3 | 1996-09-19 | 1 |
10310 | 77 | 8 | 1996-09-20 | 2 |
Ejemplo de SQL FULL OUTER JOIN
La siguiente declaración SQL selecciona todos los clientes y todos los pedidos:
SELECCIONE Clientes.Nombre del cliente, Pedidos.ID de pedido
DE Clientes
ÓRDENES EXTERIORES COMPLETAS EN Clientes.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
Una selección del conjunto de resultados puede verse así:
Nombre del cliente | Solicitar ID |
---|---|
Alfreds Futterkiste | Nulo |
Ana Trujillo Emparedados y helados | 10308 |
Antonio Moreno Taquería | Nulo |
Nota: los FULL OUTER JOIN
La palabra clave devuelve todos los registros coincidentes de ambas tablas, independientemente de que la otra tabla coincida o no. Por lo tanto, si hay filas en «Clientes» que no tienen coincidencias en «Pedidos», o si hay filas en «Pedidos» que no tienen coincidencias en «Clientes», esas filas también se enumerarán.