Sammanfattning: i denna handledning lär du dig hur du använder SQL Server FULL OUTER JOIN
för att fråga data från två eller flera tabeller.
Introduktion till SQL Server fullständig yttre koppling
FULL OUTER JOIN
returnerar en resultatuppsättning som innehåller rader från både vänster och höger tabell. När det inte finns några matchande rader för raden i den vänstra tabellen kommer kolumnerna i den högra tabellen att ha nollor. På samma sätt, när det inte finns några matchande rader för raden i den högra tabellen, kommer kolumnen i den vänstra tabellen att ha nollor.
Följande visar syntaxen för FULL OUTER JOIN
när du går med i två tabeller T1
och T2
:
Code language: SQL (Structured Query Language) (sql)
Nyckelordet OUTER
är valfritt så att du kan hoppa över det som visas i följande fråga:
Code language: SQL (Structured Query Language) (sql)
I denna syntax :
- Ange först den vänstra tabellen
T1
iFROM
-satsen. - Ange för det andra rätt tabell
T2
och ett kopplingspredikat.
Följande Venn-diagram illustrerar FULL OUTER JOIN
av två resultatuppsättningar:
Exempel på SQL Server fullständig yttre koppling
Låt oss ställa in någon provtabell för att visa hela yttre koppling.
Skapa först en ny schema med namnet pm
vilket står för projektledningar.
Code language: SQL (Structured Query Language) (sql)
Skapa sedan nya tabeller med namnet projects
och members
i pm
-schemat:
Antag att varje medlem bara kan delta i ett projekt och varje projekt har noll eller fler medlemmar. Om ett projekt befinner sig i idéfasen är det därför ingen medlem tilldelad.
Sätt sedan in några rader i projects
och members
-tabeller:
Därefter frågedata från projects
och members
-tabellerna:
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Slutligen använd FULL OUTER JOIN
för att fråga data från projects
och members
tabeller:
Här är utdata:
I det här exemplet returnerade frågan medlemmar som deltar i projekt, medlemmar som inte deltar i några projekt och projekt som inte har några medlemmar.
Att hitta de medlemmar som inte deltar i alla projekt och projekt w som inte har några medlemmar lägger du till en WHERE
-sats i ovanstående fråga:
Följande bild visar utdata:
Som tydligt visas i utgången, Jack Daniel
deltar inte i något projekt och Develop Mobile Sales Platform
har inga medlemmar.
I den här självstudien har du lärt dig hur du använder SQL Server fullständigt yttre gå med för att fråga data från två eller flera tabeller.