Dicas | Ferramentas | Notícias | Tutoriais
Como dominar o JOIN no SQL: segredo simples e eficiente

O JOIN é um dos conceitos mais importantes e temidos do SQL para iniciantes.
É ele que permite unir informações de diferentes tabelas, criando uma visão completa dos dados. Neste post, você vai entender de forma simples como dominar o JOIN no SQL e como funciona, conhecer os principais tipos e aprender um macete prático que vai mudar a forma como você constrói consultas.
💡 Dica prática antes de começar
Antes de pensar no tipo de JOIN, conheça suas tabelas.
Esse é o macete que eu uso (e recomendo para todos):
🔍 Execute um
SELECT * FROMem cada tabela separadamente.
Isso te ajuda a:
✅ Entender quais colunas existem
✅ Ver o que há em comum entre elas
✅ Saber qual campo será usado para o relacionamento
Depois disso, fica muito mais fácil escolher o tipo de JOIN ideal.
O que é um JOIN?
O JOIN é usado para combinar registros de duas (ou mais) tabelas com base em uma coluna em comum, geralmente uma chave primária (PK) e uma chave estrangeira (FK).
Exemplo:
- Tabela
clientes - Tabela
pedidos
Ambas têm uma colunacliente_id.
É essa coluna que faz o “elo” entre as duas tabelas.
INNER JOIN (somente correspondências)
Retorna apenas os registros que existem nas duas tabelas.
É o tipo de JOIN mais usado no dia a dia.
SELECT
c.nome,
p.valor_total
FROM clientes c
INNER JOIN pedidos p
ON c.cliente_id = p.cliente_id;Resultado:
Mostra apenas os clientes que têm pedidos.
💡 Dica
Temos um breve post sobre o LEFT e RIGHT que é um complemento da leitura a seguir, veja aqui.
LEFT JOIN (todos da esquerda + correspondências da direita)
Retorna todos os registros da tabela à esquerda, mesmo que não tenham correspondência na direita.
SELECT
c.nome,
p.valor_total
FROM clientes c
LEFT JOIN pedidos p
ON c.cliente_id = p.cliente_id;Resultado:
Mostra todos os clientes, incluindo os que ainda não fizeram pedidos, portanto esses terão NULL nos campos do pedido.
RIGHT JOIN (todos da direita + correspondências da esquerda)
Retorna todos os registros da tabela à direita, mesmo que não existam na esquerda.
SELECT
c.nome,
p.valor_total
FROM clientes c
RIGHT JOIN pedidos p
ON c.cliente_id = p.cliente_id;📊 Resultado:
Mostra todos os pedidos, inclusive aqueles que não têm cliente cadastrado, mas são casos raros, mas possíveis.
FULL JOIN (tudo de ambos os lados)
Retorna todos os registros de ambas as tabelas, com NULL onde não houver correspondência.
SELECT
c.nome,
p.valor_total
FROM clientes c
FULL JOIN pedidos p
ON c.cliente_id = p.cliente_id;Resultado:
Mostra todos os clientes e todos os pedidos, relacionando quando possível e preenchendo com NULL quando não houver correspondência.
📌 Veja essa ilustração
Uma boa forma de entender é imaginar dois círculos (como um diagrama de Venn):
- 🔸 INNER JOIN → apenas a interseção
- 🔸 LEFT JOIN → tudo da esquerda + interseção
- 🔸 RIGHT JOIN → tudo da direita + interseção
- 🔸 FULL JOIN → tudo de ambos os lados

🚀 Conclusão
Dominar o JOIN é questão de entender as tabelas antes de tentar juntá-las.
Use o macete: explore primeiro cada tabela com SELECT * FROM, veja as colunas em comum e só então monte o relacionamento.
Com o tempo, isso se torna automático e você ganha muito mais clareza, precisão e confiança nas suas consultas SQL.
👉 E você, já testou esse método para entender melhor os JOINs?






