SQL RIGHT JOIN Inkluderar alla rader från den högra tabellen och de som matchar från den vänstra. För som inte matchar från höger returneras NULL i motsvarande kolumner.

Detta är den viktigaste skillnaden mellan en SQL RIGHT JOIN och INNER JOIN. Medan en inner join endast returnerar rader som matchar joinvillkoret, är det i en Right outer join garanterat att alla rader i Right tables ingår i resultatet.

Kontrollera den här illustrationen:

Kontrollera resultaten för Fred och lägg märke till att det inte finns någon matchande Product, den är NULL. Dessutom är den inte inkluderad i resultatet.

Ett annat namn för Right Join är Right outer join.

Den allmänna formen för RIGHT JOIN är:

SELECT table1.column1, table2.column2, … FROM table1 RIGHT JOIN table2 ON table1.commonColumn = table2.commonColumn 

Noter:

  • I detta exempel är table2 den högra tabellen och table1 den vänstra.
  • Om det inte finns någon matchning mellan commonColumn-värdena returnerar table1.column1 NULL

SQL RIGHT JOIN Exempel

Inte alla personer i AdventureWorks-databasen är anställda. Vi listar alla personer och några av deras anställningsuppgifter, om de finns. Vi använder en RIGHT JOIN för att göra det.

Håll i minnet att det är en RIGHT JOIN, eftersom persontabellen, som har varje rad som vi vill returnera, finns på den högra sidan av JOIN-operatorn.

Listan över alla personer och eventuella anställningsuppgifter, om de finns. -Använd Outer Join för att göra 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; 

Kolla på resultaten och se att det finns NULL:s för vissa personer. Detta beror på att det inte finns några motsvarande poster i tabellen Employee. RIGHT JOIN fungerar som det var tänkt, den returnerar alla matchningar och en NULL om ingen finns.

Väsentliga punkter:

När du arbetar med RIGHT JOINS ska du tänka på att din matchning från en tabell till en annan kan matcha flera rader. Det innebär att ditt resultat kan ha fler rader i resultatet än du har i någon av tabellerna.

När kolumnerna inte stämmer överens, frågar den högra raden och NULL för kolumnerna i den vänstra tabellen…

Lämna ett svar

Din e-postadress kommer inte publiceras.