SQLTutorial.nl
Right join
De right join, of right outer join in sommige database, geeft altijd alle rijen terug van de rechter tabel (tabelnaam2). Als er overeenkomsten zijn met de linker tabel (tabelnaam1) dan worden deze ook weergegeven. De syntax voor de right join query ziet er als volgt uit:SELECT kolomnaam1, kolomnaam2
FROM tabelnaam1
RIGHT JOIN tabelnaam2 ON tabelnaam1.kolomnaam = tabelnaam2.kolomnaam
- In sommige database moet RIGHT OUTER JOIN gebruikt wordt ipv. RIGHT JOIN.FROM tabelnaam1
RIGHT JOIN tabelnaam2 ON tabelnaam1.kolomnaam = tabelnaam2.kolomnaam
Voorbeeld
De "Persoon" tabel zie er als volgd uit:
Er is tussen deze tabellen een relatie tussen
Persoon.Id > Order.PersoonNr.
| id | Voornaam | Achternaam | Woonplaats | Geslacht |
|---|---|---|---|---|
| 1 | Henk | Janssen | Amsterdam | M |
| 2 | Petra | de klomp | Nijmegen | V |
| 3 | Sjoerd | Vermeulen | Amsterdam | M |
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 |
| 5 | 3 | 23-8-2009 |
| 6 | 4 | 10-9-2009 |
In onderstaande query zullen alle orders worden opgevraagd uit de database, indien er een relatie met de personen tabel gelegd kan worden dan zullen deze gegevens ook zichtbaar worden.
SELECT *
FROM Persoon
RIGHT JOIN Orders
ON Persoon.id = Orders.PersoonNr
FROM Persoon
RIGHT 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 |
| - | - | - | - | - | 2 | 4 | 11-2-2009 |
| 1 | Henk | Janssen | Amsterdam | M | 4 | 1 | 8-8-2009 |
| 3 | Sjoerd | Vermeulen | Amsterdam | M | 5 | 3 | 23-8-2009 |
| - | - | - | - | - | 6 | 4 | 10-9-2009 |
In het resultaat hierboven is te zien dat alle gegevens van de order tabel zichtbaar worden gemaakt. Waarmogelijk wordt een relatie gelegd met de Persoon tabel. Is dit niet mogelijke (Persoon id 4 bestaat niet) dan worden de persoon waardes met NULL gevuld.