Verwenden von Verknüpfungen

Verknüpfungsbedingungen können in FROM- oder WHERE-Klauseln, sollten jedoch vorzugsweise in FROM-Klauseln angegeben werden. WHERE- und HAVING-Klauseln können ebenfalls Suchbedingungen enthalten, um die durch die Verknüpfungsbedingungen ausgewählten Zeilen weiter zu filtern.

Verknüpfungen können in folgende Kategorien unterteilt werden:

  • Innere Verknüpfungen (der normale Verknüpfungvorgang, bei der ein Vergleichsoperator wie = oder <> verwendet wird). Zu den inneren Verknüpfungen gehören Gleichheitsverknüpfungen und natürliche Verknüpfungen.

    Innere Verknüpfungen verwenden einen Vergleichsoperator, um Zeilen aus zwei Tabellen basierend auf den Werten in gemeinsamen Spalten beider Tabellen zu vergleichen. Ein Beispiel ist das Abrufen aller Zeilen, in denen die Studentennummer in der students- und der courses-Tabelle übereinstimmt.

  • Äußere Verknüpfungen. Dies können linke, rechte und vollständige äußere Verknüpfungen sein.

    Äußere Verknüpfungen werden in der FROM-Klausel mit einer der folgenden Schlüsselwörtergruppen angegeben:

    • LEFT JOIN oder LEFT OUTER JOIN.

      Das Resultset einer linken äußeren Verknüpfung enthält alle Zeilen aus der in der LEFT OUTER-Klausel angegebenen linken Tabelle, nicht nur die, in denen die verknüpften Spalten übereinstimmen. Wenn für eine Zeile in der linken Tabelle keine übereinstimmenden Zeilen in der rechten Tabelle vorhanden sind, enthält die zugehörige Resultsetzeile NULL-Werte für alle Auswahllistenspalten, die aus der rechten Tabelle stammen.

    • RIGHT JOIN oder RIGHT OUTER JOIN

      Eine rechte äußere Verknüpfung ist die Umkehrung einer linken äußeren Verknüpfung. Alle Zeilen aus der rechten Tabelle werden zurückgegeben. NULL-Werte werden für die linke Tabelle zurückgegeben, wenn für eine Zeile der rechten Tabelle keine übereinstimmende Zeile in der linken Tabelle vorhanden ist.

    • FULL JOIN oder FULL OUTER JOIN

      Eine vollständige äußere Verknüpfung gibt alle Zeilen in der linken und rechten Tabelle zurück. Wenn für eine Zeile keine Entsprechung in der anderen Tabelle vorhanden ist, enthalten die Auswahllistenspalten aus der anderen Tabelle NULL-Werte. Bei Übereinstimmungen zwischen den Tabellen enthält die gesamte Resultsetzeile Datenwerte aus den Basistabellen.

  • CROSS JOINs

    Cross Joins geben alle Zeilen der linken Tabelle zurück. Jede Zeile der linken Tabelle wird mit allen Zeilen der rechten Tabelle verknüpft. CROSS JOINs werden auch als kartesische Produkte bezeichnet.

Mit dieser inneren Verknüpfung werden beispielsweise die Mitarbeiter abgerufen, die auch Vertriebsmitarbeiter sind:

USE AdventureWorks;
GO
SELECT e.EmployeeID
FROM HumanResources.Employee AS e
    INNER JOIN Sales.SalesPerson AS s
    ON e.EmployeeID = s.SalesPersonID

Die Tabellen oder Sichten in der FROM-Klausel können mit INNER JOIN und FULL OUTER JOIN in einer beliebigen Reihenfolge angegeben werden. Bei LEFT JOIN oder RIGHT OUTER JOIN ist die Reihenfolge der angegebenen Tabellen oder Sichten jedoch von Bedeutung. Weitere Informationen zur Reihenfolge der Tabellen bei linken oder rechten äußeren Verknüpfungen finden Sie unter Verwenden von äußeren Verknüpfungen.

Weitere Informationen zum Verwenden der unterschiedlichen Verknüpfungstypen finden Sie in folgenden Themen: