Juniorjoinfundamentos
Como funciona LEFT JOIN na prática
Publicado em 2025-03-10
Pergunta
Explique a diferença entre INNER JOIN e LEFT JOIN e mostre um caso onde só LEFT JOIN resolve.
Explicação
LEFT JOIN preserva todas as linhas da tabela à esquerda e completa com NULL quando não há correspondência à direita. É essencial para responder perguntas do tipo "quem ainda não fez X".
Query SQL
sql
-- Clientes que nunca fizeram pedido
SELECT c.id, c.nome
FROM clientes c
LEFT JOIN pedidos p
ON p.cliente_id = c.id
WHERE p.id IS NULL;Resposta esperada
Lista de clientes sem nenhum pedido associado. INNER JOIN devolveria zero linhas porque exige correspondência.
Erros comuns
- Aplicar filtros da tabela direita no WHERE em vez do ON, transformando o LEFT JOIN em INNER
- Contar com COUNT(*) sem perceber que NULLs contam
- Esquecer de qualificar colunas e gerar ambiguidade
Dica de entrevista
A pergunta "quem não fez X?" quase sempre é resolvida com LEFT JOIN + WHERE direita IS NULL.