Venstre, Høyre og Indre Joins
Nettbutikken har bestilt flere produkter fra en leverandør fordi de begynte å gå tom for lager. Dette betyr at vi har litt fritid til forsendelsen ankommer.
La oss bruke denne muligheten til å lære noe nytt! Så langt har du brukt den standard JOIN
i SQL, men det finnes andre typer joins du kan bruke.
Her er de 4 hovedtypene av tabell joins:
INNER JOIN
: Returnerer rader med samsvarende verdier i begge tabellene. Dette er det samme som den standard JOIN du har brukt;
LEFT JOIN
: Returnerer alle rader fra venstre tabell og de samsvarende radene fra høyre tabell. Hvis det ikke er noen samsvar, returnerer denNULL
for høyre tabell;
RIGHT JOIN
: Returnerer alle rader fra høyre tabell og de samsvarende radene fra venstre tabell. Hvis det ikke er noen treff, returnerer denNULL
for venstre tabell;
FULL JOIN
: Returnerer alle rader når det er en samsvar i en av tabellene. Hvis det ikke er noen samsvar, returnerer denNULL
for de manglende verdiene i den andre tabellen.
Før vi dykker inn i bruken av disse joinene, la oss se på de to tabellene vi skal jobbe med. De inneholder detaljer om kursene og studentene som er registrert i dem.
courses
:
enrollments
:
Syntaksen for å bruke disse typene av joins er faktisk enkel. I stedet for den kjente JOIN
eller INNER JOIN
, spesifiser bare LEFT JOIN
eller en annen type JOIN
:
sql
Swipe to start coding
Skriv en spørring for å hente en liste over alle kurs og studentene som er registrert, inkludert kurs uten registrerte studenter.
Du må hente følgende kolonner i denne rekkefølgen:
bash
Bruk riktig type JOIN
for å løse denne oppgaven!
Kort instruksjon
- Hent kolonnene
courses.course_id
,courses.course_name
,courses.description
,enrollments.student_name
, ogenrollments.enrollment_date
fracourses
-tabellen. - Bruk en LEFT JOIN for å koble
enrollments
-tabellen. - Den felles kolonnen for begge tabellene er
courses.course_id = enrollments.course_id
.
Løsning
Takk for tilbakemeldingene dine!