Delen via


Outer joins maken (Visual Database Tools)

van toepassing op:SQL Server-

Met de hulpmiddelen voor query- en weergaveontwerpers (Visual Database Tools) wordt standaard een inner join tussen tabellen gemaakt. Inner joins elimineren de rijen die niet overeenkomen met een rij uit de andere tabel. Outer joins retourneren echter alle rijen uit ten minste één van de tabellen of weergaven die in de FROM component worden genoemd, zolang deze rijen voldoen aan een WHERE of HAVING meer zoekvoorwaarden. Als u gegevensrijen wilt opnemen in de resultatenset die geen overeenkomst hebben in de gekoppelde tabel, kunt u een outer join maken.

Wanneer u een outer join maakt, is de volgorde waarin tabellen worden weergegeven in de SQL-instructie (zoals weergegeven in het SQL-deelvenster) aanzienlijk. De eerste tabel die u toevoegt, wordt de 'linker'-tabel en de tweede tabel wordt de 'rechter'-tabel. (De werkelijke volgorde waarin de tabellen worden weergegeven in het deelvenster Diagram (Hulpmiddelen voor visuele databases) is niet significant.) Wanneer u een left of right outer join opgeeft, verwijst u naar de volgorde waarin de tabellen zijn toegevoegd aan de query en naar de volgorde waarin ze worden weergegeven in de SQL-instructie in het SQL-deelvenster (Visual Database Tools).

Een outer join maken

  1. Maak de join automatisch of handmatig. Zie Tabellen automatisch samenvoegen (Visual Database Tools) of Tabellen handmatig samenvoegen (Visual Database Tools) voor meer informatie.

  2. Selecteer de joinlijn in het deelvenster Diagram, en kies vervolgens in het menu Querydesigner de optie Alle rijen selecteren uit <tabelnaam>, waarbij u de opdracht selecteert die de tabel bevat waarvan u extra rijen wilt opnemen.

    • Kies de eerste tabel om een left outer join te maken.
    • Kies de tweede tabel om een rechter outer join te maken.
    • Kies beide tabellen om een volledige outer join te creëren.

Wanneer u een outer join opgeeft, wijzigt de Query- en Weergave-ontwerper de join-lijn om een outer join aan te geven.

Bovendien wijzigt de Query- en Weergaveontwerper de SQL-instructie in het SQL-deelvenster om de wijziging in het jointype weer te geven, zoals in de volgende instructie te zien is.

SELECT employee.job_id,
       employee.emp_id,
       employee.fname,
       employee.minit,
       jobs.job_desc
FROM employee
     LEFT OUTER JOIN jobs
         ON employee.job_id = jobs.job_id;

Omdat een outer join niet-overeenkomende rijen bevat, kunt u deze gebruiken om rijen te vinden die de beperkingen van vreemde sleutels schenden. Hiervoor maakt u een outer join en voegt u vervolgens een zoekvoorwaarde toe om rijen te zoeken waarin de primaire-sleutelkolom van de meest rechtse tabel null is. Met de volgende outer join worden bijvoorbeeld rijen gevonden in de employee tabel die geen overeenkomende rijen in de jobs tabel hebben:

SELECT employee.emp_id,
       employee.job_id
FROM employee
     LEFT OUTER JOIN jobs
         ON employee.job_id = jobs.job_id
WHERE (jobs.job_id IS NULL);