LEFT JOIN ou INNER JOIN?
Básico4 min
O problema
Sua consulta perde registros depois de juntar duas tabelas.
Como funciona
INNER JOIN mantém apenas linhas com correspondência nas duas tabelas. LEFT JOIN mantém todas as linhas da tabela da esquerda, preenchendo com NULL quando não há par.
Exemplo
SQL
SELECT c.nome, SUM(v.valor) AS total
FROM clientes c
LEFT JOIN vendas v
ON v.cliente_id = c.id
GROUP BY c.nome;Resultado
Clientes sem vendas aparecem com total nulo, em vez de desaparecerem do resultado.
Quando usar
- Listas completas de cadastro com métricas opcionais
Quando evitar
- Quando a ausência de correspondência indica dado inválido
Resolve Melhor
Use COALESCE(SUM(v.valor), 0) para exibir zero em vez de nulo em relatórios.