SQLTutorial.nl

Left join

De left join, of left outer join in sommige database, geeft altijd alle rijen terug van de linker tabel (tabelnaam1), als er overeenkomsten zijn met de rechter tabel (tabelnaam2) dan worden deze ook weergegeven. De syntax voor de left join query ziet er als volgt uit:
SELECT kolomnaam1, kolomnaam2
FROM tabelnaam1
LEFT JOIN tabelnaam2 ON tabelnaam1.kolomnaam = tabelnaam2.kolomnaam
- In sommige database moet LEFT OUTER JOIN gebruikt wordt ipv. LEFT JOIN.

Voorbeeld

De "Persoon" tabel zie er als volgd uit:
id Voornaam Achternaam Woonplaats Geslacht
1 Henk Janssen Amsterdam M
2 Petra de klomp Nijmegen V
3 Sjoerd Vermeulen Amsterdam M
4 Mieke Sterk Amsterdam V
Er is tussen deze tabellen een relatie tussen Persoon.Id > Order.PersoonNr.

De tabel "Orders":
OrderNr PersoonNr Bestel datum
1 1 10-1-2009
2 4 11-2-2009
4 1 8-8-2009
6 4 10-9-2009


In onderstaande query zullen alle personen worden opgevraagd uit de database, indien een persoon ook in de ordertabel voorkomt dat moet hiervan ook de gegevens worden weergegeven.
SELECT *
FROM Persoon
LEFT JOIN Orders
ON Persoon.id = Orders.PersoonNr
id Voornaam Achternaam Woonplaats Geslacht OrderNr PersoonNr Bestel datum
1 Henk Janssen Amsterdam M 1 1 10-1-2009
1 Henk Janssen Amsterdam M 4 1 8-8-2009
2 Petra de klomp Nijmegen V - - -
3 Sjoerd Vermeulen Amsterdam M - - -
4 Mieke Sterk Amsterdam V 2 4 11-2-2009
4 Mieke Sterk Amsterdam V 6 4 10-9-2009

In het resultaat hierboven is te zien dat alle gegevens uit de personen tabel worden weergegeven. Indien de persoon meerdere keren voorkomt in de order tabel dan wordt de persoon ook meerdere keren in het overzicht getoond. Als er geen overeenkomst in de orders tabel gevonden is, Petra de klomp (id 2) komt niet voor in de orders tabel, zullen wel alle persoonsgegevens getoond worden en de resultaten van de orderstabel zullen met NULL waardes gevuld worden.