Resolve BI

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.

Dúvidas relacionadas