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.

Listen over alle personer og eventuelle beskæftigelsesdata, hvis de findes. -Brug Outer Join til at gøre det… SELECT P.FirstName , P.LastName , E.HireDate , E.JobTitle FROM HumanResources.Employee AS E RIGHT JOIN Person.Person AS P ON P.BusinessEntityID = E.BusinessEntityID;
--List all People and any employment data, if it exists. --Use Outer Join to do so... SELECT P.FirstName , P.LastName , E.HireDate , E.JobTitle FROM HumanResources.Employee AS E RIGHT JOIN Person.Person AS P ON P.BusinessEntityID = E.BusinessEntityID; 

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…

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.