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

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfrage und Änderung von Daten » 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;

Tabellenreferenzen in ON-Klauseln
Generierte Joins und die ON-Klausel
Typen expliziter Join-Bedingungen
WHERE-Klauseln in Join-Bedingungen