Left-, 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 returnerasNULL
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 returnerasNULL
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 returnerasNULL
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
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
ochenrollments.enrollment_date
från tabellencourses
. - 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
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 4
Left-, 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 returnerasNULL
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 returnerasNULL
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 returnerasNULL
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
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
ochenrollments.enrollment_date
från tabellencourses
. - 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
Tack för dina kommentarer!
Awesome!
Completion rate improved to 4single