Artigos de Tecnologia e Negócios > Data Science

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

Guilherme Silveira
Guilherme Silveira
Imagem de destaque

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).

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);

Leia também:

Artigos de Tecnologia e Negócios > Data Science

Cursos profissionais de Data Science é na Alura, comece agora!

  • 1119 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1119 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1119 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1119 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?
Acesso por 1 ano
Estude 24h/dia onde e quando quiser
Novos cursos toda semana