börjar här? Den här lektionen är en del av en handledning i full längd för att använda SQL för dataanalys. Kolla in början.

i den här lektionen täcker vi:

  • vänster JOIN command
  • Övningsproblem

vänster JOIN command

låt oss börja med att köra enINNER JOIN på CrunchBase dataset och ta en titt på resultaten. Vi tittar bara på company-permalink I varje tabell, liksom ett par andra fält, för att få en känsla av vad som faktiskt förenas.,

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

Du kanske märker att ”280 North” visas två gånger i den här listan. Det beror på att den har två poster i tabellen tutorial.crunchbase_acquisitions, vilka båda ansluts till tabellen tutorial.crunchbase_companies.,

försök nu att köra den frågan som ettLEFT 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

Du kan se att de två första företagen från föregående resultatuppsättning, #waywire och 1000memories, trycks ner på sidan med ett antal resultat som innehåller nollvärden iacquisitions_permalink ochacquired_date fält.,

detta beror på att kommandotLEFT JOIN talar om för databasen att returnera alla rader i tabellen i klausulenFROM, oavsett om de har matchningar i tabellen i klausulenLEFT JOIN.,

vässa dina SQL-färdigheter

Du kan utforska skillnaderna mellan enLEFT JOIN och enJOIN genom att lösa dessa övningsproblem:

Övningsproblem

Skriv en fråga som utför en inre koppling mellantutorial.crunchbase_acquisitions – tabellen och tabellentutorial.crunchbase_companies, men istället för att lista enskilda rader, räkna antalet icke-null-rader i varje tabell.,

prova det se svaret

öva Problem

ändra frågan ovan för att vara en LEFT JOIN. Notera skillnaden i resultat. se svaret

nu när du har en känsla av hur vänster ansluter arbete, prova detta hårdare aggregering problem:

öva Problem

räkna antalet unika företag (inte dubbelräkning företag) och unika förvärvade företag efter stat., Inkludera inte resultat för vilka det inte finns några statliga uppgifter och order av antalet förvärvade företag från Högsta till lägsta.

prova det se svaret