SQL Server Full Outer Join

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 de FROM -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.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *