Oversigt: I denne vejledning lærer du, hvordan du bruger SQL Server FULL OUTER JOIN
forespørgsel om data fra to eller flere tabeller.
Introduktion til SQL Server fuld ydre sammenføjning
FULL OUTER JOIN
returnerer et resultatsæt, der inkluderer rækker fra både venstre og højre bord. Når der ikke findes nogen matchende rækker for rækken i venstre tabel, har kolonnerne i højre tabel nul. Tilsvarende, når der ikke findes nogen matchende rækker for rækken i højre tabel, vil kolonnen i den venstre tabel have nuller.
Det følgende viser syntaksen for FULL OUTER JOIN
når du forbinder to tabeller T1
og T2
:
Code language: SQL (Structured Query Language) (sql)
Nøgleordet OUTER
er valgfrit, så du kan springe det over som vist i følgende forespørgsel:
Code language: SQL (Structured Query Language) (sql)
I denne syntaks :
- Angiv først den venstre tabel
T1
iFROM
-klausulen. - For det andet skal du angive den rigtige tabel
T2
og et sammenføjningspredikat.
Følgende Venn-diagram illustrerer FULL OUTER JOIN
af to resultatsæt:
Eksempel på SQL Server fuld ydre sammenføjning
Lad os oprette en eksempeltabel for at demonstrere den fulde ydre sammenføjning.
Opret først en ny skema med navnet pm
som står for projektledelser.
Code language: SQL (Structured Query Language) (sql)
Opret derefter nye tabeller med navnet projects
og members
i skemaet pm
:
Antag at hvert medlem kun kan deltage i et projekt, og hvert projekt har nul eller flere medlemmer. Hvis et projekt er i idéfasen, er der derfor ikke noget medlem tildelt.
Indsæt derefter nogle rækker i projects
og members
tabeller:
Derefter spørger data fra projects
og members
tabellerne:
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Brug til sidst FULL OUTER JOIN
til at forespørge på data fra projects
og members
tabeller:
Her er output:
I dette eksempel returnerede forespørgslen medlemmer, der deltager i projekter, medlemmer, der ikke deltager i nogen projekter, og projekter, der ikke har nogen medlemmer.
At finde de medlemmer, der ikke deltager i ethvert projekt og projekter w der ikke har nogen medlemmer, skal du tilføje en WHERE
-klausul til ovenstående forespørgsel:
Følgende billede viser output:
Som tydeligt vist i output, Jack Daniel
deltager ikke i noget projekt, og Develop Mobile Sales Platform
har ingen medlemmer.
I denne vejledning har du lært, hvordan du bruger SQL Server fuldt ud deltage i forespørgselsdata fra to eller flere tabeller.