1
resposta

Duvida sobre left Join

fiz uma busca usando o left join, porem quando executo o codigo ele mostra o cliente Fabio Carvalho, mas quando seleciono somente a tabela de notas fiscais esse cliente não aparece lá, por que da esse resultado ?

Segue o codigo que usei :

select a.cpf, a.nome, count(*) from tabela_de_clientes a 
left join notas_fiscais b on a.cpf = b.cpf group by a.cpf;

select a.cpf, a.nome, count(*) from tabela_de_clientes a 
left join notas_fiscais b on a.cpf = b.cpf where a.cpf = 95939180787 group by a.cpf;

select * from notas_fiscais where cpf = 95939180787
1 resposta

Oii, Yago! Tudo bem?

Isso ocorre porque o LEFT JOIN traz todos os registros da tabela à esquerda (tabela_de_clientes) e apenas os correspondentes da tabela à direita (notas_fiscais). Se o cliente Fabio Carvalho não possui notas fiscais, ele não é retornado na consulta que utiliza apenas a tabela notas_fiscais.

Para verificar se o cliente Fabio Carvalho possui notas fiscais, segue um exemplo de consulta que você pode usar:

SELECT * FROM notas_fiscais WHERE cpf = 95939180787;

No exemplo acima, a consulta retornará todas as notas fiscais do cliente com CPF 95939180787. Se não houver nenhum resultado, significa que o cliente não possui notas fiscais.

Para te auxiliar nos estudos das cláusulas, inclusive o JOIN, recomendo a documentação da Microsoft que contém informações ricas sobre. Segue o link:

A página podem abrir em Inglês, caso não se sinta confortável com o idioma, clique com o botão direito do mouse em qualquer canto da página e escolha a opção "Traduzir para o português".

Espero ter ajudado. Continue interagindo no fórum compartilhando suas dúvidas, projetos e feedbacks.

Bons estudos, Yago!