Samenvatting: in deze tutorial leert u hoe u de SQL Server FULL OUTER JOIN
om gegevens uit twee of meer tabellen op te vragen.
Inleiding tot SQL Server full outer join
De FULL OUTER JOIN
retourneert een resultaatset die bevat rijen van zowel linker- als rechtertabellen. Als er geen overeenkomende rijen zijn voor de rij in de linkertabel, hebben de kolommen van de rechtertabel null-waarden. Evenzo, als er geen overeenkomende rijen bestaan voor de rij in de rechtertabel, zal de kolom van de linkertabel null-waarden hebben.
Het volgende toont de syntaxis van de FULL OUTER JOIN
bij het samenvoegen van twee tafels T1
en T2
:
Code language: SQL (Structured Query Language) (sql)
Het OUTER
sleutelwoord is optioneel, dus je kunt het overslaan zoals getoond in de volgende zoekopdracht:
Code language: SQL (Structured Query Language) (sql)
In deze syntaxis :
- Specificeer eerst de linkertabel
T1
in deFROM
-clausule. - Ten tweede, specificeer de juiste tabel
T2
en een join-predikaat.
Het volgende Venn-diagram illustreert het FULL OUTER JOIN
van twee resultaatsets:
SQL Server volledige outer join voorbeeld
Laten we een voorbeeldtabel opzetten om de volledige outer join te demonstreren.
Maak eerst een nieuwe schema met de naam pm
wat staat voor projectmanagement.
Code language: SQL (Structured Query Language) (sql)
Maak vervolgens nieuwe tabellen met de naam projects
en members
in het pm
schema:
Stel dat alleen elk lid kan deelnemen in één project en elk project heeft nul of meer leden. Als een project zich in de ideefase bevindt, is er dus geen lid toegewezen.
Voeg vervolgens enkele rijen in de projects
en members
tabellen:
Vraag daarna gegevens uit de projects
en members
tabellen:
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Gebruik ten slotte de FULL OUTER JOIN
om gegevens op te vragen van projects
en members
tabellen:
Hier is de output:
In dit voorbeeld leverde de zoekopdracht leden op die deelnemen aan projecten, leden die niet deelnemen aan projecten en projecten die geen leden hebben.
Om de leden te vinden die niet deelnemen aan elk project en projecten w die geen leden hebben, voegt u een WHERE
-clausule toe aan de bovenstaande zoekopdracht:
De volgende afbeelding toont de uitvoer:
Zoals duidelijk te zien is in de uitvoer, Jack Daniel
neemt niet deel aan een project en Develop Mobile Sales Platform
heeft geen leden.
In deze tutorial heb je geleerd hoe je SQL Server volledig kunt gebruiken join om gegevens uit twee of meer tabellen op te vragen.