RIGHT JOIN

Bij de RIGHT JOIN worden altijd alle rijen terug van de rechtertabel teruggegeven. Als er overeenkomsten zijn met de linkertabel, dan worden deze ook meegenomen in het resultaat. In principe is dit het tegenover gestelde van de LEFT JOIN.

SELECT Tabelnaam1.kolomnaam1, Tabelnaam2.kolomnaam2
FROM Tabelnaam1
RIGHT JOIN Tabelnaam2
ON Tabelnaam1.kolomnaam1 = Tabelnaam2.kolomnaam1

Alle resultaten uit Tabelnaam2 zijn zichtbaar en indien aanwezig de data uit Tabelnaam2 ook.

In sommige databases moet RIGHT OUTER JOIN worden gebruikt in plaats van RIGHT JOIN.

RIGHT JOIN in de praktijk

De volgende dataset is de inhoud van de tabel Order.

ordernummer, klantid, orderbedrag
1, 1, '23.20'
2, 4, '2.30'
3, 3, '12.93'
4, 4, '54.92'
5, 1, '6.12'
6, 4, '9.60'
7, 5, '15.56'
		

De volgende dataset is de inhoud van de tabel Klant.

id, voornaam, achternaam, woonplaats
1, 'Henk', 'Janssen', 'Amsterdam'
2, 'Petra', 'de klomp', 'Nijmegen'
3, 'Sjoerd', 'Vermeulen', 'Maastricht'
4, 'Mieke', 'Sterk', 'Amsterdam'
		

De relatie tussen beide tabellen is gelegd met het veld Order.klantid dat verwijst naar Klant.id

We willen met de volgende query alle orders opvragen uit de database. Als er aan een order een persoon is gekoppeld, dan willen we deze ook tonen.

SELECT *
FROM Persoon
RIGHT JOIN Order ON Persoon.id = Order.klantid
id, voornaam, achternaam, woonplaats, ordernummer, klantid, orderbedrag
1, 'Henk', 'Janssen', 'Amsterdam', 1, 1, '23.20'
4, 'Mieke', 'Sterk', 'Amsterdam', 2, 4, '2.30'
3, 'Sjoerd', 'Vermeulen', 'Maastricht', 3, 3, '12.93'
4, 'Mieke', 'Sterk', 'Amsterdam', 4, 4, '54.92'
1, 'Henk', 'Janssen', 'Amsterdam', 5, 1, '6.12'
4, 'Mieke', 'Sterk', 'Amsterdam', 6, 4, '9.60'
NULL, NULL, NULL, NULL, 7, 5, '15.56'

We zien in de resultset een record met id 7 terug, hieraan is geen Persoon gekoppeld. De gegevens uit de tabel Persoon zijn voor dit record dan ook allemaal NULL.