Left, Right en Inner Joins
De online winkel heeft meer producten besteld bij een leverancier omdat ze bijna geen voorraad meer hadden. Dit betekent dat we wat vrije tijd hebben totdat de zending aankomt.
Laten we deze gelegenheid gebruiken om iets nieuws te leren! Tot nu toe heb je de standaard JOIN
in SQL gebruikt, maar er zijn andere soorten joins die je kunt gebruiken.
Hier zijn de 4 belangrijkste soorten tabel joins:
INNER JOIN
: Geeft rijen terug met overeenkomende waarden in beide tabellen. Dit is hetzelfde als de standaard JOIN die je hebt gebruikt;
LEFT JOIN
: Geeft alle rijen van de linkertabel en de overeenkomende rijen van de rechtertabel terug. Als er geen overeenkomsten zijn, retourneert hetNULL
voor de rechtertabel;
RIGHT JOIN
: Geeft alle rijen van de rechtertabel en de overeenkomende rijen van de linkertabel terug. Als er geen overeenkomsten zijn, retourneert hetNULL
voor de linkertabel;
FULL JOIN
: Geeft alle rijen terug wanneer er een overeenkomst is in een van de tabellen. Als er geen overeenkomsten zijn, retourneert hetNULL
voor de ontbrekende waarden in de andere tabel.
Voordat we deze joins gaan gebruiken, laten we de twee tabellen bekijken waarmee we gaan werken. Ze bevatten details over cursussen en de studenten die zich daarvoor hebben ingeschreven.
courses
:
enrollments
:
De syntaxis voor het gebruik van deze soorten joins is eigenlijk eenvoudig. In plaats van de bekende JOIN
of INNER JOIN
, specificeer gewoon LEFT JOIN
of een ander type JOIN
:
sql
Swipe to start coding
Schrijf een query om een lijst op te halen van alle cursussen en de ingeschreven studenten, inclusief cursussen zonder geregistreerde studenten.
Je moet de volgende kolommen in deze volgorde ophalen:
bash
Gebruik het juiste type JOIN
om deze taak op te lossen!
Korte instructies
- Haal de kolommen
courses.course_id
,courses.course_name
,courses.description
,enrollments.student_name
enenrollments.enrollment_date
op uit decourses
tabel. - Gebruik een LEFT JOIN om de
enrollments
tabel te koppelen. - De gemeenschappelijke kolom voor beide tabellen is
courses.course_id = enrollments.course_id
.
Oplossing
Bedankt voor je feedback!