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) |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |