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.
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…