JOIN (INNER e LEFT)

Combine linhas de duas tabelas onde uma chave coincide. Um INNER JOIN mantém só as correspondências; um LEFT JOIN mantém todas as linhas da tabela da esquerda.

Sintaxe

SELECT … FROM a JOIN b ON a.key = b.key;
SELECT … FROM a LEFT JOIN b ON a.key = b.key;

Exemplo

SELECT c.last_name, o.order_date FROM customers AS c JOIN orders AS o ON o.customer_id = c.customer_id;

Cada pedido com o sobrenome do cliente. Pedidos sem cliente ficam de fora.

Tabelas usadas: customers, orders. Experimente em uma lição abaixo.

Erros comuns

  • Esquecer a condição ON cria um cross join: cada linha combinada com todas as outras.
  • Filtrar a tabela da direita no WHERE transforma um LEFT JOIN de volta em um INNER JOIN.

Pratique