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. Det betyder, at vi har lidt fritid, indtil leveringen ankommer.
Lad os bruge denne mulighed til at lære noget nyt! Indtil nu har du brugt den standard JOIN
i SQL, men der findes andre typer joins, du kan anvende.
Her er de 4 hovedtyper af tabel-joins:
INNER JOIN
: Returnerer rækker med matchende værdier i begge tabeller. Dette svarer til den standard JOIN, du har brugt indtil nu;
LEFT JOIN
: Returnerer alle rækker fra venstre tabel og de matchende rækker fra højre tabel. Hvis der ikke er nogen match, returnerer denNULL
for højre tabel;
RIGHT JOIN
: Returnerer alle rækker fra højre tabel og de matchende rækker fra venstre tabel. Hvis der ikke er nogen match, returnerer denNULL
for 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 brugen af disse joins, skal vi se på de to tabeller, vi skal arbejde med. De indeholder oplysninger om kurser og de studerende, der er tilmeldt dem.
courses
:
enrollments
:
Syntaksen for at bruge disse typer joins er faktisk enkel. I stedet for det velkendte JOIN
eller INNER JOIN
, skal du blot angive LEFT JOIN
eller en anden type JOIN
:
SELECT table1.column, table2.column
FROM table1 -- this is the LEFT table
LEFT JOIN table 2 -- this is the RIGHT table
ON table1.common_column = table2.common_column
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:
courses.course_id,
courses.course_name,
courses.description,
enrollments.student_name,
enrollments.enrollment_date
Brug den passende type JOIN
for at løse denne opgave!
Korte instruktioner
- Hent kolonnerne
courses.course_id
,courses.course_name
,courses.description
,enrollments.student_name
ogenrollments.enrollment_date
fra tabellencourses
. - Brug et LEFT JOIN til at sammenkæde tabellen
enrollments
. - Den fælles kolonne for begge tabeller er
courses.course_id = enrollments.course_id
.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 4
Left, Right og Inner Joins
Stryg for at vise menuen
Onlinebutikken har bestilt flere produkter fra en leverandør, fordi de var ved at løbe tør for lager. Det betyder, at vi har lidt fritid, indtil leveringen ankommer.
Lad os bruge denne mulighed til at lære noget nyt! Indtil nu har du brugt den standard JOIN
i SQL, men der findes andre typer joins, du kan anvende.
Her er de 4 hovedtyper af tabel-joins:
INNER JOIN
: Returnerer rækker med matchende værdier i begge tabeller. Dette svarer til den standard JOIN, du har brugt indtil nu;
LEFT JOIN
: Returnerer alle rækker fra venstre tabel og de matchende rækker fra højre tabel. Hvis der ikke er nogen match, returnerer denNULL
for højre tabel;
RIGHT JOIN
: Returnerer alle rækker fra højre tabel og de matchende rækker fra venstre tabel. Hvis der ikke er nogen match, returnerer denNULL
for 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 brugen af disse joins, skal vi se på de to tabeller, vi skal arbejde med. De indeholder oplysninger om kurser og de studerende, der er tilmeldt dem.
courses
:
enrollments
:
Syntaksen for at bruge disse typer joins er faktisk enkel. I stedet for det velkendte JOIN
eller INNER JOIN
, skal du blot angive LEFT JOIN
eller en anden type JOIN
:
SELECT table1.column, table2.column
FROM table1 -- this is the LEFT table
LEFT JOIN table 2 -- this is the RIGHT table
ON table1.common_column = table2.common_column
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:
courses.course_id,
courses.course_name,
courses.description,
enrollments.student_name,
enrollments.enrollment_date
Brug den passende type JOIN
for at løse denne opgave!
Korte instruktioner
- Hent kolonnerne
courses.course_id
,courses.course_name
,courses.description
,enrollments.student_name
ogenrollments.enrollment_date
fra tabellencourses
. - Brug et LEFT JOIN til at sammenkæde tabellen
enrollments
. - Den fælles kolonne for begge tabeller er
courses.course_id = enrollments.course_id
.
Løsning
Tak for dine kommentarer!
Awesome!
Completion rate improved to 4single