RIGHT JOIN e FULL JOIN

Um RIGHT JOIN mantém todas as linhas da tabela da direita. Um FULL JOIN mantém as linhas sem correspondência das duas tabelas.

Sintaxe

SELECT … FROM a RIGHT JOIN b ON a.key = b.key;
SELECT … FROM a FULL JOIN b ON a.key = b.key;
  • Quando uma linha não tem correspondência, as colunas da outra tabela ficam NULL.

Exemplo

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

Cada pedido e cada cliente; os lados sem correspondência mostram NULL.

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

Erros comuns

  • Uma condição sobre a tabela da direita no WHERE remove as linhas com NULL. Coloque-a no ON.

Pratique