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.
Wil je meerdere gegevens uit verschillende tabellen, maar die welbij elkaar horen in één query ophalen? Dan kun je prima gebruik maken van een JOIN-query. Een voorbeeld van een JOIN is de RIGHT JOIN. Daarover ga je meer lezen hieronder. Wist je bijvoorbeeld dat de RIGHT JOIN het tegenovergestelde doet 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.
Let op: 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.
