à partir d’ici? Cette leçon fait partie d’un tutoriel complet sur L’utilisation de SQL pour L’analyse de données. Découvrez le début.

dans cette leçon, nous allons couvrir:

  • la commande LEFT JOIN
  • problèmes de pratique

la commande LEFT JOIN

commençons par exécuter un INNER JOIN sur le jeu de données Crunchbase et. Nous allons simplement regarder company-permalink dans chaque table, ainsi que quelques autres champs, pour avoir une idée de ce qui est réellement joint.,

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

Vous pouvez remarquer que « 280 Nord » apparaît deux fois dans cette liste. C’est parce qu’il a deux entrées dans la table tutorial.crunchbase_acquisitions, qui sont toutes deux jointes sur la table tutorial.crunchbase_companies.,

maintenant, essayez d’exécuter cette requête en tant que 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

Vous pouvez voir que les deux premières sociétés du jeu de résultats précédent, #waywire et 1000memories, sont poussées vers le bas de la page résultats contenant des valeurs NULL dans les champs acquisitions_permalink Et acquired_date.,

C’est parce que le LEFT JOIN commande indique la base de données à retourner toutes les lignes de la table dans le FROM l’article, peu importe s’ils n’ont pas de correspondance dans la table dans le LEFT JOIN clause.,

affinez vos compétences SQL

Vous pouvez explorer les différences entre unLEFT JOIN et unJOIN en résolvant ces problèmes de pratique:

problème de pratique

écrivez une requête qui effectue une jointure interne entre la tabletutorial.crunchbase_acquisitions et la tabletutorial.crunchbase_companies, mais au lieu de lister des lignes individuelles, comptez le nombre de lignes non nulles dans chaque table.,

Essayer de Voir la réponse

la Pratique de Problème

Modifier la requête ci-dessus pour être un LEFT JOIN. Notez la différence de résultats.

essayez-le voir la réponse

maintenant que vous avez une idée du fonctionnement des jointures à gauche, essayez ce problème d’agrégation plus difficile:

problème de pratique

comptez le nombre d’entreprises uniques (ne comptez pas deux fois les entreprises) et les entreprises acquises uniques par état., Ne pas inclure les résultats pour lesquels il n’y a pas de données d’état et classer par le nombre d’entreprises acquises du plus élevé au plus bas.

Essayer de Voir la réponse