De SQL RIGHT JOIN bevat alle rijen uit de rechtertabel en de rijen die overeenkomen met de linker. Voor die niet overeenkomen van rechts, wordt NULL geretourneerd in de overeenkomstige kolommen.
Dit is het belangrijkste verschil tussen een SQL RIGHT JOIN en een INNER JOIN. Waar een inner join alleen rijen retourneert die voldoen aan de join voorwaarde, is het in een Right outer join gegarandeerd dat alle rijen van de Right tabellen in het resultaat worden opgenomen.
Kijk eens naar deze illustratie:
Kijk eens naar de resultaten voor Fred en zie dat er geen overeenkomend product is, het is NULL. Ook is de niet opgenomen in het resultaat.
Een andere naam voor right join is Right outer join.
De RIGHT JOIN algemene vorm is:
SELECT table1.column1, table2.column2, … FROM table1 RIGHT JOIN table2 ON table1.commonColumn = table2.commonColumn
Noten:
- In dit voorbeeld is tabel2 de rechter tabel en tabel1 de linker.
- Als er geen overeenkomst is tussen de commonColumn waarden, retourneert tabel1.column1 NULL
SQL RIGHT JOIN Voorbeeld
Niet iedere persoon in de AdventureWorks database is een werknemer. Laten we een lijst maken van elke persoon, en enkele van hun arbeidsgegevens, als die bestaan. We gebruiken een RIGHT JOIN om dat te doen.
Houd in gedachten dat het een RIGHT JOIN is, omdat de persoonstabel, die elke rij bevat die we willen retourneren, aan de rechterkant van de JOIN operator staat.
Kijk naar de resultaten en zie dat er voor sommige personen NULL’s zijn. Dit komt omdat er geen overeenkomstige gegevens zijn in de Werknemer tabel. De RIGHT JOIN werkt zoals geadverteerd, retourneert alle overeenkomsten, en een NULL als er geen bestaan.
Belangrijke punten:
Wanneer je met RIGHT JOINS werkt, houd er dan rekening mee dat je match van de ene tabel naar de andere met meerdere rijen kan overeenkomen. Betekenis, kan uw resultaat meer rijen in het resultaat dat je hebt in een van beide tabellen.
Wanneer kolommen niet overeenkomen, zal de query de rechter rij, en NULL voor de linker tabel kolommen.