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)

 

Tabellenreferenzen in ON-Klauseln

Die Tabellen, die in einer ON-Klausel referenziert werden, müssen Teil des Joins sein, den die ON-Klausel ändert. Folgende Anweisung ist z.B. ungültig:

FROM ( A KEY JOIN B ) JOIN ( C JOIN D ON A.x = C.x )

Das Problem ist hier, dass die Join-Bedingung A.x = C.x Tabelle A referenziert, die nicht Teil des Joins ist, den die Bedingung modifiziert (in diesem Fall C JOIN D).

Seit ANSI/ISO-Standard SQL99 und SQL Anywhere 7.0 gibt es jedoch eine Ausnahme von dieser Regel: Wenn Sie Kommata zwischen Tabellenausdrücken verwenden, kann eine ON-Bedingung eines Joins eine Tabelle referenzieren, die ihr in der FROM-Klausel syntaktisch vorausgeht. Folgende Anweisung ist daher gültig:

FROM (A KEY JOIN B) , (C JOIN D ON A.x = C.x)
 Siehe auch
 Beispiel