Referência rápida

Folha de dicas de SQL Joins

Guia rápido de junções de tabelas SQL: INNER JOIN, LEFT JOIN, RIGHT JOIN e FULL OUTER JOIN com sintaxe e lógica de Venn.

· Publicado

Exemplo de sintaxe

SELECT order_items.id, orders.order_date, order_items.price
FROM order_items
LEFT OUTER JOIN orders
  ON order_items.order_id = orders.id;

As junções (Joins) combinam linhas de duas ou mais tabelas com base em uma coluna relacionada entre elas.

Visualização de Joins

SELECT * FROM `A` INNER JOIN `B`
┌────────┐
│ A  ┌───┼────┐
│    │ ∩ │    │
└────┼───┘  B │
     └────────┘
Tipo de Join Dados incluídos Descrição
INNER JOIN ∩ Retorna registros com valores correspondentes em ambas as tabelas
LEFT OUTER JOIN A + ∩ Retorna todos os registros da tabela A e os correspondentes da tabela B
RIGHT OUTER JOIN ∩ + B Retorna todos os registros da tabela B e os correspondentes da tabela A
FULL OUTER JOIN A + ∩ + B Retorna todos os registros quando há correspondência na tabela esquerda ou direita

Variantes de Join e filtros

Left Join excluindo a interseção

SELECT * FROM A
LEFT JOIN B ON A.key = B.key
WHERE B.key IS NULL;

Right Join excluindo a interseção

SELECT * FROM A
RIGHT JOIN B ON A.key = B.key
WHERE A.key IS NULL;

Full Outer Join excluindo a interseção

SELECT * FROM A
FULL OUTER JOIN B ON A.key = B.key
WHERE A.key IS NULL OR B.key IS NULL;

Temas relacionados