Left, Right og Inner Joins
Onlinebutikken har bestilt flere produkter fra en leverandør, fordi de var ved at løbe tør for lager. Dette betyder, at vi har lidt fritid, indtil forsendelsen ankommer.
Lad os bruge denne mulighed til at lære noget nyt! Indtil nu har du brugt den standard JOIN
i SQL, men der er andre typer af joins, du kan bruge.
Her er de 4 hovedtyper af tabel joins:
INNER JOIN
: Returnerer rækker med matchende værdier i begge tabeller. Dette er det samme som den standard JOIN, du har brugt;
LEFT JOIN
: Returnerer alle rækker fra den venstre tabel og de matchende rækker fra den højre tabel. Hvis der ikke er nogen match, returnerer denNULL
for den højre tabel;
RIGHT JOIN
: Returnerer alle rækker fra den højre tabel og de matchende rækker fra den venstre tabel. Hvis der ikke er nogen match, returnerer denNULL
for den venstre tabel;
FULL JOIN
: Returnerer alle rækker, når der er et match i en af tabellerne. Hvis der ikke er nogen match, returnerer denNULL
for de manglende værdier i den anden tabel.
Før vi dykker ned i at bruge disse joins, lad os se på de to tabeller, vi skal arbejde med. De indeholder detaljer om kurserne og de studerende, der er tilmeldt dem.
courses
:
enrollments
:
Syntaksen for at bruge disse typer af joins er faktisk enkel. I stedet for den velkendte JOIN
eller INNER JOIN
, skal du blot angive LEFT JOIN
eller en anden type JOIN
:
sql
Swipe to start coding
Skriv en forespørgsel for at hente en liste over alle kurser og de tilmeldte studerende, inklusive kurser uden registrerede studerende.
Du skal hente følgende kolonner i denne rækkefølge:
bash
Brug den passende type JOIN
til at løse denne opgave!
Korte instruktioner
- Hent kolonnerne
courses.course_id
,courses.course_name
,courses.description
,enrollments.student_name
, ogenrollments.enrollment_date
fracourses
tabellen. - Brug en LEFT JOIN til at forbinde
enrollments
tabellen. - Den fælles kolonne for begge tabeller er
courses.course_id = enrollments.course_id
.
Løsning
Tak for dine kommentarer!