começando aqui? Esta lição é parte de um tutorial de comprimento completo no uso de SQL para análise de dados. Olha para o início.
nesta aula vamos cobrir:
- LEFT JOIN comando
- Prática de problemas
LEFT JOIN comando
Vamos começar pela execução de uma INNER JOIN
sobre o Crunchbase conjunto de dados, e tendo um olhar para os resultados. Nós vamos apenas olhar para company-permalink
em cada tabela, bem como um par de outros campos, para obter uma noção do que está realmente sendo unido.,
SELECT companies.permalink AS companies_permalink, companies.name AS companies_name, acquisitions.company_permalink AS acquisitions_permalink, acquisitions.acquired_at AS acquired_date FROM tutorial.crunchbase_companies companies JOIN tutorial.crunchbase_acquisitions acquisitions ON companies.permalink = acquisitions.company_permalink
pode notar que “280 North” aparece duas vezes nesta lista. Isso porque tem duas entradas na tabela , ambas as quais estão sendo unidas na tabela tutorial.crunchbase_companies
.,
Agora, tente executar essa consulta como uma LEFT JOIN
:
SELECT companies.permalink AS companies_permalink, companies.name AS companies_name, acquisitions.company_permalink AS acquisitions_permalink, acquisitions.acquired_at AS acquired_date FROM tutorial.crunchbase_companies companies LEFT JOIN tutorial.crunchbase_acquisitions acquisitions ON companies.permalink = acquisitions.company_permalink
Você pode ver que as duas primeiras empresas a partir do conjunto de resultados anterior, #waywire e 1000memories, são empurradas para baixo a página por um número de resultados que contêm valores nulos acquisitions_permalink
e acquired_date
campos.,
Isto é porque o LEFT JOIN
comando informa o banco de dados para retornar todas as linhas da tabela FROM
cláusula, independentemente de terem ou não têm correspondentes na tabela LEFT JOIN
cláusula.,
Sharpen suas competências em SQL
Você pode explorar as diferenças entre um LEFT JOIN
e uma JOIN
resolvendo estes problemas:
a Prática de Problema
Escrever uma consulta que executa uma associação interna entre o tutorial.crunchbase_acquisitions
tabela e tutorial.crunchbase_companies
tabela, mas em vez de listar linhas individuais, contar o número de não-nulo linhas em cada tabela.,
Experimente e Veja a resposta
a Prática de Problema
Modificar a consulta acima para ser uma LEFT JOIN
. Observe a diferença nos resultados.
Experimente e Veja a resposta
Agora que você já tem uma noção de como a esquerda se junta funcionar, tente este mais difícil de agregação problema:
a Prática de Problema
Contagem do número de empresas (não clique duas vezes contagem de empresas) e exclusivo de empresas adquiridas pelo estado., Não incluir resultados para os quais não há dados do estado, e ordem pelo número de empresas adquiridas do mais alto ao mais baixo.
Experimente ver a resposta