Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Left-, Right- og Inner-joiner | Slå Sammen Tabeller
Videregående SQL

bookLeft-, 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 den NULL 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 den NULL for venstre tabell;
  • FULL JOIN: Returnerer alle rader når det finnes en samsvar i én av tabellene. Hvis det ikke finnes samsvar, returnerer den NULL 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
Oppgave

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 og enrollments.enrollment_date fra tabellen courses.
  • Bruk en LEFT JOIN for å koble til tabellen enrollments.
  • Felles kolonne for begge tabellene er courses.course_id = enrollments.course_id.

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 5
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

close

Awesome!

Completion rate improved to 4

bookLeft-, 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 den NULL 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 den NULL for venstre tabell;
  • FULL JOIN: Returnerer alle rader når det finnes en samsvar i én av tabellene. Hvis det ikke finnes samsvar, returnerer den NULL 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
Oppgave

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 og enrollments.enrollment_date fra tabellen courses.
  • Bruk en LEFT JOIN for å koble til tabellen enrollments.
  • Felles kolonne for begge tabellene er courses.course_id = enrollments.course_id.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

close

Awesome!

Completion rate improved to 4
Seksjon 3. Kapittel 5
single

single

some-alt