Starte her? Denne leksjonen er en del av en full-lengde opplæringen i bruk av SQL for Data-Analyse. Sjekk ut begynnelsen.

I denne leksjonen vil vi dekke:

  • VENSTRE BLI med kommandoen
  • Praksis problemer

BLI med VENSTRE kommando

La oss starte ved å kjøre en INNER JOIN på Crunchbase dataset og ta en titt på resultatene. Vi får bare se på company-permalink i hver tabell, samt et par andre felt, for å få en følelse av hva som faktisk blir medlem.,

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 kan legge merke til at «280 Nord» vises to ganger i denne listen. Det er fordi den har to oppføringer i tutorial.crunchbase_acquisitions bordet, både som blir sluttet på tutorial.crunchbase_companies tabell.,

Nå kan du prøve å kjøre dette spørsmålet som en 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

Du kan se at de to første selskapene fra forrige resultat, #waywire og 1000memories, er skjøvet ned på siden av en rekke resultater som inneholder null-verdier i acquisitions_permalink og acquired_date felt.,

Dette er fordi LEFT JOIN – kommandoen forteller database til å returnere alle rader i tabellen i FROM klausulen, uavhengig av om de har kamper i tabellen i LEFT JOIN klausulen.,

Skjerpe dine SQL ferdigheter

Du kan utforske forskjellene mellom en LEFT JOIN og JOIN ved å løse disse problemer praksis:

Praksis Problem

Skriv en spørring som utfører en indre sammenføyning mellom tutorial.crunchbase_acquisitions bordet og tutorial.crunchbase_companies bordet, men i stedet for å liste enkelte rader, telle antall ikke-null rader i hver tabell.,

Prøv det ut og Se svaret

Praksis Problem

Endre spørringen over å være en LEFT JOIN. Merk forskjellen i resultater.

Prøv det ut og Se svaret

Nå som du har fått en følelse av hvordan venstre slutter seg arbeid, kan du prøve dette vanskeligere aggregering problem:

Praksis Problem

Telle antall unike selskaper (ikke dobbel-count-selskaper) og unike oppkjøpte selskaper med staten., Inkluderer ikke resultater som det er ingen stat data, og rekkefølgen av antall kjøpte selskaper fra høyest til lavest.

Prøv det ut og Se svaret