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 * FROM em 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 coluna cliente_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
JOIN TECPRODUTIVA

🚀 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?

Compartilhe:
Elvis Amorim

Elvis Amorim

Apaixonado por tecnologia e por compartilhar conhecimento. Tenho mais de 15 anos de experiência nas áreas de varejo, administração e informática, atuando como analista de sistemas e de dados. No TecProdutiva, reúno tudo o que aprendi para ajudar pessoas a usarem a tecnologia de forma simples e produtiva.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *