Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Left-, Right- och Inner-joiner | Sammanfogning av Tabeller
Intermediär SQL

bookLeft-, Right- och Inner-joiner

Webbutiken har beställt fler produkter från en leverantör eftersom lagret höll på att ta slut. Detta innebär att vi har lite ledig tid tills leveransen anländer.

Låt oss använda denna möjlighet till att lära oss något nytt! Hittills har du använt den vanliga JOIN i SQL, men det finns andra typer av joins du kan använda.

Här är de fyra huvudsakliga typerna av tabelljoins:

  • INNER JOIN: Returnerar rader med matchande värden i båda tabellerna. Detta är samma som den vanliga JOIN du har använt;
  • LEFT JOIN: Returnerar alla rader från den vänstra tabellen och de matchande raderna från den högra tabellen. Om det inte finns några matchningar returneras NULL för den högra tabellen;
  • RIGHT JOIN: Returnerar alla rader från den högra tabellen och de matchande raderna från den vänstra tabellen. Om det inte finns några matchningar returneras NULL för den vänstra tabellen;
  • FULL JOIN: Returnerar alla rader där det finns en matchning i någon av tabellerna. Om det inte finns några matchningar returneras NULL för de saknade värdena i den andra tabellen.

Innan vi går vidare med att använda dessa joins, ska vi titta på de två tabellerna vi kommer att arbeta med. De innehåller information om kurser och de studenter som är registrerade på dem.

courses:

enrollments:

Syntaxen för att använda dessa typer av joins är faktiskt enkel. Istället för det välkända JOIN eller INNER JOIN, anger du bara LEFT JOIN eller någon annan typ av 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
Uppgift

Swipe to start coding

Skriv en fråga för att hämta en lista över alla kurser och de studenter som är registrerade, inklusive kurser utan registrerade studenter.

Du behöver hämta följande kolumner i denna ordning:

courses.course_id,
courses.course_name,
courses.description,
enrollments.student_name,
enrollments.enrollment_date

Använd rätt typ av JOIN för att lösa denna uppgift!

Kortfattade instruktioner

  • Hämta kolumnerna courses.course_id, courses.course_name, courses.description, enrollments.student_name och enrollments.enrollment_date från tabellen courses.
  • Använd en LEFT JOIN för att ansluta tabellen enrollments.
  • Den gemensamma kolumnen för båda tabellerna är courses.course_id = enrollments.course_id.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

Awesome!

Completion rate improved to 4

bookLeft-, Right- och Inner-joiner

Svep för att visa menyn

Webbutiken har beställt fler produkter från en leverantör eftersom lagret höll på att ta slut. Detta innebär att vi har lite ledig tid tills leveransen anländer.

Låt oss använda denna möjlighet till att lära oss något nytt! Hittills har du använt den vanliga JOIN i SQL, men det finns andra typer av joins du kan använda.

Här är de fyra huvudsakliga typerna av tabelljoins:

  • INNER JOIN: Returnerar rader med matchande värden i båda tabellerna. Detta är samma som den vanliga JOIN du har använt;
  • LEFT JOIN: Returnerar alla rader från den vänstra tabellen och de matchande raderna från den högra tabellen. Om det inte finns några matchningar returneras NULL för den högra tabellen;
  • RIGHT JOIN: Returnerar alla rader från den högra tabellen och de matchande raderna från den vänstra tabellen. Om det inte finns några matchningar returneras NULL för den vänstra tabellen;
  • FULL JOIN: Returnerar alla rader där det finns en matchning i någon av tabellerna. Om det inte finns några matchningar returneras NULL för de saknade värdena i den andra tabellen.

Innan vi går vidare med att använda dessa joins, ska vi titta på de två tabellerna vi kommer att arbeta med. De innehåller information om kurser och de studenter som är registrerade på dem.

courses:

enrollments:

Syntaxen för att använda dessa typer av joins är faktiskt enkel. Istället för det välkända JOIN eller INNER JOIN, anger du bara LEFT JOIN eller någon annan typ av 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
Uppgift

Swipe to start coding

Skriv en fråga för att hämta en lista över alla kurser och de studenter som är registrerade, inklusive kurser utan registrerade studenter.

Du behöver hämta följande kolumner i denna ordning:

courses.course_id,
courses.course_name,
courses.description,
enrollments.student_name,
enrollments.enrollment_date

Använd rätt typ av JOIN för att lösa denna uppgift!

Kortfattade instruktioner

  • Hämta kolumnerna courses.course_id, courses.course_name, courses.description, enrollments.student_name och enrollments.enrollment_date från tabellen courses.
  • Använd en LEFT JOIN för att ansluta tabellen enrollments.
  • Den gemensamma kolumnen för båda tabellerna är courses.course_id = enrollments.course_id.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

close

Awesome!

Completion rate improved to 4
Avsnitt 3. Kapitel 5
single

single

some-alt