Entre para a LISTA VIP da Black Friday

00

DIAS

00

HORAS

00

MIN

00

SEG

Clique para saber mais

SQL engolindo valores? 1 boa prática que resolve o problema

SQL engolindo valores? 1 boa prática que resolve o problema
Guilherme Silveira
Guilherme Silveira

Compartilhe

Imagem de destaque #cover

Busquei os livros e a quantidade de vendas, mas meu novo livro de introdução a computação não apareceu:


select l.nome, count(v.id) as total from livros l JOIN vendas v on v.livro_id = l.id group by l.id;

\> Java SE 8 Programmer I, 4200 > Swift: Programe para iPhone e iPad, 3900

Meus livros (tabela da esquerda) são usados com um join com suas vendas (tabela da direita).

Banner da promoção da black friday, com os dizeres: A Black Friday Alura está chegando. Faça parte da Lista VIP, receba o maior desconto do ano em primeira mão e garanta bônus exclusivos. Quero ser VIP

O join padrão só traz linhas quando existem valores equivalentes nas duas tabelas... se o livro é novo e não possui venda... não tem linha na tabela da direita... uma pena!

Se quero um join que traga todo mundo da esquerda (meus livros), independentemente de ter alguém na direita, basta usar um join canhoto, o LEFT JOIN:


select l.nome, count(v.id) as total from livros l LEFT JOIN vendas v on v.livro_id = l.id group by l.id;

\> Java SE 8 Programmer I, 4200 > Swift: Programe para iPhone e iPad, 3900 > Introdução a Computação, 0

Sempre que escrever a palavra JOIN, pare e pense: que tipo de join você deseja? Será que não queria um LEFT JOIN?

Desafio para a próxima dica: o que tem de horripilante na tabela a seguir?


create table Vendas (id integer primary key, valor double);
Guilherme Silveira
Guilherme Silveira

Co-fundador da Alura, da Caelum e do GUJ. Com 18 anos de ensino nas áreas de programação e dados, criou mais de 100 cursos. Possui formação em engenharia de software, viés matemático e criativo, além de ser medalhista de ouro em competições nacionais de computação, tendo representado o Brasil nos mundiais. Participante de comunidades open source e de educação em tecnologia, tendo escrito 7 livros. Faz mágica e fala coreano no tempo livre.

Veja outros artigos sobre Data Science