Referencia rápida

Hoja de trucos de SQL Joins

Guía rápida de uniones de tablas SQL: INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL OUTER JOIN con sintaxis y diagramas de Venn.

· Publicado

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;

Temas relacionados