🔗
SQLIntermediário 9 min

SQL JOINs explicados

INNER, LEFT, RIGHT e FULL. Como juntar dados de duas tabelas sem se perder.

JOINs combinam linhas de duas tabelas com base em uma condição, geralmente uma chave estrangeira. O tipo de join define quais linhas aparecem.

INNER JOIN

joins.sql
-- só usuários que fizeram pedidos
SELECT u.nome, p.valor
FROM usuarios u
INNER JOIN pedidos p ON p.usuario_id = u.id;

LEFT JOIN

LEFT JOIN traz todos os usuários, mesmo os que não fizeram pedidos — as colunas de pedidos virão NULL.

sql
SELECT u.nome, p.valor
FROM usuarios u
LEFT JOIN pedidos p ON p.usuario_id = u.id
WHERE p.id IS NULL;  -- usuários SEM pedidos
  • INNER — só linhas que casam nos dois lados.
  • LEFT — tudo da tabela esquerda, NULL quando não casa.
  • RIGHT — espelho do LEFT.
  • FULL — tudo dos dois lados, NULL onde não casa.

Use apelidos curtos nas tabelas (u, p) para legibilidade. E conte o resultado: um JOIN mal feito pode duplicar linhas se a cardinalidade for surpresa.