Wat is een left join in SQL?
sobes.tech AI
Antwoord van AI
De LEFT JOIN (of LEFT OUTER JOIN) in SQL wordt gebruikt om rijen uit twee tabellen te combineren.
Het resultaat van LEFT JOIN bevat:
- Alle rijen uit de linker (eerste) tabel.
- Overeenkomende rijen uit de rechter (tweede) tabel, waar de join-voorwaarde wordt voldaan.
- Voor rijen uit de linker tabel zonder overeenkomst in de rechter, bevatten de kolommen van de rechter tabel de waarde
NULL.
Syntaxvoorbeeld:
SELECT <kolom_lijst>
FROM <linker_tabel> AS L
LEFT JOIN <rechter_tabel> AS R ON L.<koppelingskolom> = R.<koppelingskolom>;
Werking:
Elke rij van de linker tabel wordt doorlopen. Voor elke rij wordt gezocht naar overeenkomsten in de rechter tabel op basis van de ON-voorwaarde.
- Als overeenkomsten worden gevonden, wordt de rij van de linker tabel gecombineerd met alle overeenkomende rijen van de rechter tabel.
- Als geen overeenkomsten worden gevonden, wordt de rij van de linker tabel opgenomen in het resultaat, en de kolommen van de rechter tabel worden gevuld met
NULL.
Visuele voorstelling:
Stel je twee datasets voor: Left (linker tabel) en Right (rechter tabel). LEFT JOIN geeft alle elementen van Left terug, evenals die van Right die een overeenkomst hebben in Left. Als er elementen in Left zijn zonder overeenkomst in Right, worden deze elementen nog steeds opgenomen in het resultaat, maar de bijbehorende velden uit Right zijn leeg (NULL).
Vergelijking met andere JOIN-types:
| JOIN-type | Beschrijving |
|---|---|
| INNER JOIN | Geeft alleen de rijen terug waar er een overeenkomst is tussen beide tabellen. |
| LEFT JOIN | Geeft alle rijen uit de linker tabel en de overeenkomende rijen uit de rechter. NULL voor niet-overeenkomende rijen uit de rechter. |
| RIGHT JOIN | Geeft alle rijen uit de rechter tabel en de overeenkomende rijen uit de linker. NULL voor niet-overeenkomende rijen uit de linker. |
| FULL OUTER JOIN | Geeft alle rijen terug met overeenkomsten in een van de tabellen. NULL voor niet-overeenkomende rijen in beide tabellen. |
LEFT JOIN is dus handig wanneer je een volledige lijst van records uit één tabel wilt krijgen en deze wilt aanvullen met informatie uit een andere tabel, zelfs als niet alle records een overeenkomst hebben.