Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Daten abfragen und ändern » Joins: Daten aus mehreren Tabellen abrufen

 

Explizite Join-Bedingungen (ON-Klausel)

Anstelle oder zusammen mit einem Schlüssel-Join oder einem natürlichen Join können Sie einen Join festlegen, der eine explizite Join-Bedingung verwendet. Sie können eine Join-Bedingung angeben, indem Sie eine ON-Klausel unmittelbar nach dem Join verwenden. Die Join-Bedingung bezieht sich immer auf den Join, der unmittelbar vorausgeht. Mit der ON-Klausel wird eine Einschränkung auf die Zeilen in einem Join angewendet, etwa so, wie mit der WHERE-Klausel Einschränkungen auf die Zeilen in einer Abfrage angewendet werden.

Die ON-Klausel ermöglicht es Ihnen, nützlichere Joins zu konstruieren als CROSS JOIN. Sie können die ON-Klausel z.B. auf einen Join der Tabellen "SalesOrders" und "Employees" anwenden, um nur die Zeilen abzurufen, für die der Verkäufer (SalesRepresentative) in der Tabelle "SalesOrders" derselbe ist wie in jeder Zeile des Ergebnisses in der Tabelle "Employees". Auf diese Weise enthält jede Zeile dann Informationen über einen Auftrag und den dafür verantwortlichen Verkäufer.

In folgender Abfrage dient beispielsweise die erste ON-Klausel dazu, "SalesOrders" mit "Customers" zu verknüpfen. Die zweite ON-Klausel dient dazu, den Tabellenausdruck (SalesOrders JOIN Customers) mit der Basistabelle "SalesOrderItems" zu verknüpfen.

SELECT *
FROM SalesOrders JOIN Customers
    ON SalesOrders.CustomerID = Customers.ID
  JOIN SalesOrderItems
    ON SalesOrderItems.ID = SalesOrders.ID;

Tabellen in einer ON-Klausel referenzieren
Generierte Joins und die ON-Klausel
Typen expliziter Join-Bedingungen
Join-Bedingungen in der WHERE-Klausel