SQL RIGHT JOIN omfatter alle rækker fra den højre tabel og de rækker, der matcher fra venstre. For der ikke matcher fra højre, returneres NULL i de tilsvarende kolonner.
Dette er den vigtigste forskel mellem en SQL RIGHT JOIN og INNER JOIN. Hvor et inner join kun returnerer rækker, der matcher joinbetingelsen, er det i et Right outer join garanteret, at alle rækker fra Right tables er inkluderet i resultatet.
Kig på denne illustration:
Kig på resultaterne for Fred og bemærk, at der ikke er nogen matchende Product, den er NULL. Desuden er den ikke medtaget i resultatet.
Et andet navn for right join er Right outer join.
Den generelle form for RIGHT JOIN er:
SELECT table1.column1, table2.column2, … FROM table1 RIGHT JOIN table2 ON table1.commonColumn = table2.commonColumn
Noter:
- I dette eksempel er tabel2 den højre tabel og tabel1 den venstre.
- Hvis der ikke er noget match mellem commonColumn-værdierne, returnerer tabel1.column1 NULL
SQL RIGHT JOIN Eksempel
Det er ikke alle personer i AdventureWorks-databasen, der er en medarbejder. Lad os liste alle personer og nogle af deres ansættelsesdata, hvis de findes. Vi bruger et RIGHT JOIN til at gøre det.
Husk, at det er en RIGHT JOIN, da persontabellen, som har alle de rækker, vi ønsker at returnere, er på højre side af JOIN-operatoren.
Kig på resultaterne og bemærk, at der er NULL’er for nogle personer. Dette skyldes, at der ikke er nogen tilsvarende poster i tabellen Employee. RIGHT JOIN fungerer som annonceret, returnerer alle match, og en NULL hvor der ikke findes nogen.
Vigtige punkter:
Når du arbejder med RIGHT JOINS, skal du huske på, at dit match fra en tabel til en anden kan matche flere rækker. Det betyder, at dit resultat kan have flere rækker i resultatet, end du har i begge tabeller.
Når kolonnerne ikke matcher, forespørger forespørgslen den højre række og NULL for kolonnerne i den venstre tabel…