Left-, Right- og Inner-joiner
Nettbutikken har bestilt flere produkter fra en leverandør fordi de begynte å gå tom for lager. Dette betyr at vi har litt ledig tid til leveransen ankommer.
La oss bruke denne muligheten til å lære noe nytt! Så langt har du brukt standard JOIN
i SQL, men det finnes andre typer sammenkoblinger du kan bruke.
Her er de 4 hovedtypene av tabell-sammenkoblinger:
INNER JOIN
: Returnerer rader med samsvarende verdier i begge tabellene. Dette er det samme som standard JOIN du har brukt;
LEFT JOIN
: Returnerer alle rader fra venstre tabell og de samsvarende radene fra høyre tabell. Hvis det ikke finnes 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 finnes samsvar, returnerer denNULL
for venstre tabell;
FULL JOIN
: Returnerer alle rader når det finnes en samsvar i én av tabellene. Hvis det ikke finnes samsvar, returnerer denNULL
for de manglende verdiene i den andre tabellen.
Før vi går videre med å bruke disse join-typene, skal vi se på de to tabellene vi skal jobbe med. De inneholder detaljer om kurs og studentene som er påmeldt dem.
courses
:
enrollments
:
Syntaksen for å bruke disse typene joins er faktisk enkel. I stedet for den kjente JOIN
eller INNER JOIN
, spesifiser bare LEFT JOIN
eller en annen 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 spørring for å hente en liste over alle kurs og studentene som er påmeldt, inkludert kurs uten registrerte studenter.
Du skal hente følgende kolonner i denne rekkefølgen:
courses.course_id,
courses.course_name,
courses.description,
enrollments.student_name,
enrollments.enrollment_date
Bruk riktig type JOIN
for å løse denne oppgaven!
Korte instruksjoner
- Hent kolonnene
courses.course_id
,courses.course_name
,courses.description
,enrollments.student_name
ogenrollments.enrollment_date
fra tabellencourses
. - Bruk en LEFT JOIN for å koble til tabellen
enrollments
. - Felles kolonne for begge tabellene er
courses.course_id = enrollments.course_id
.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 4
Left-, Right- og Inner-joiner
Sveip for å vise menyen
Nettbutikken har bestilt flere produkter fra en leverandør fordi de begynte å gå tom for lager. Dette betyr at vi har litt ledig tid til leveransen ankommer.
La oss bruke denne muligheten til å lære noe nytt! Så langt har du brukt standard JOIN
i SQL, men det finnes andre typer sammenkoblinger du kan bruke.
Her er de 4 hovedtypene av tabell-sammenkoblinger:
INNER JOIN
: Returnerer rader med samsvarende verdier i begge tabellene. Dette er det samme som standard JOIN du har brukt;
LEFT JOIN
: Returnerer alle rader fra venstre tabell og de samsvarende radene fra høyre tabell. Hvis det ikke finnes 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 finnes samsvar, returnerer denNULL
for venstre tabell;
FULL JOIN
: Returnerer alle rader når det finnes en samsvar i én av tabellene. Hvis det ikke finnes samsvar, returnerer denNULL
for de manglende verdiene i den andre tabellen.
Før vi går videre med å bruke disse join-typene, skal vi se på de to tabellene vi skal jobbe med. De inneholder detaljer om kurs og studentene som er påmeldt dem.
courses
:
enrollments
:
Syntaksen for å bruke disse typene joins er faktisk enkel. I stedet for den kjente JOIN
eller INNER JOIN
, spesifiser bare LEFT JOIN
eller en annen 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 spørring for å hente en liste over alle kurs og studentene som er påmeldt, inkludert kurs uten registrerte studenter.
Du skal hente følgende kolonner i denne rekkefølgen:
courses.course_id,
courses.course_name,
courses.description,
enrollments.student_name,
enrollments.enrollment_date
Bruk riktig type JOIN
for å løse denne oppgaven!
Korte instruksjoner
- Hent kolonnene
courses.course_id
,courses.course_name
,courses.description
,enrollments.student_name
ogenrollments.enrollment_date
fra tabellencourses
. - Bruk en LEFT JOIN for å koble til tabellen
enrollments
. - Felles kolonne for begge tabellene er
courses.course_id = enrollments.course_id
.
Løsning
Takk for tilbakemeldingene dine!
Awesome!
Completion rate improved to 4single