Ejemplo de sintaxis
SELECT order_items.id, orders.order_date, order_items.price
FROM order_items
LEFT OUTER JOIN orders
ON order_items.order_id = orders.id;
Las uniones (Joins) combinan filas de dos o más tablas basándose en una columna relacionada entre ellas.
Visualización de Joins
SELECT * FROM `A` INNER JOIN `B`
┌────────┐
│ A ┌───┼────┐
│ │ ∩ │ │
└────┼───┘ B │
└────────┘
| Tipo de Join | Datos incluidos | Descripción |
|---|---|---|
INNER JOIN |
∩ |
Devuelve registros con valores coincidentes en ambas tablas |
LEFT OUTER JOIN |
A + ∩ |
Devuelve todos los registros de la tabla A y los coincidentes de la tabla B |
RIGHT OUTER JOIN |
∩ + B |
Devuelve todos los registros de la tabla B y los coincidentes de la tabla A |
FULL OUTER JOIN |
A + ∩ + B |
Devuelve todos los registros cuando hay coincidencia en la tabla izquierda o derecha |
Variantes de Join y filtros
Left Join excluyendo la intersección
SELECT * FROM A
LEFT JOIN B ON A.key = B.key
WHERE B.key IS NULL;
Right Join excluyendo la intersección
SELECT * FROM A
RIGHT JOIN B ON A.key = B.key
WHERE A.key IS NULL;
Full Outer Join excluyendo la intersección
SELECT * FROM A
FULL OUTER JOIN B ON A.key = B.key
WHERE A.key IS NULL OR B.key IS NULL;