Außer bei der Verwendung von Outer-Joins können Sie Join-Bedingungen in der WHERE-Klausel anstatt in der ON-Klausel angeben. Sie müssen jedoch beachten, dass semantische Unterschiede zwischen den beiden bestehen können, wenn die Abfrage Outer-Joins enthält.
Die ON-Klausel ist Teil der FROM-Klausel und wird daher vor der WHERE-Klausel verarbeitet. Dies führt nur bei Outer-Joins zu einem unterschiedlichen Ergebnis, bei denen die WHERE-Klausel den Join in einen Inner-Join umwandeln kann.
Wenn Sie entscheiden, Join-Bedingungen in eine ON- oder eine WHERE-Klausel einzubeziehen, sollten Sie folgende Regeln beachten:
Wenn Sie einen Outer-Join verwenden und eine Join-Bedingung in die WHERE-Klausel einbeziehen, wird der Outer-Join möglicherweise in einen Inner-Join umgewandelt.
Bedingungen in einer ON-Klausel können nur Tabellen referenzieren, die in den Tabellenausdrücken enthalten sind, die von dem zugehörigen JOIN verknüpft werden. Bedingungen in einer WHERE-Klausel können beliebige Tabellen referenzieren, selbst wenn sie nicht Teil des Joins sind.
Es ist nicht möglich, eine ON-Klausel mit den Schlüsselwörtern CROSS JOIN zu verwenden. Sie können jedoch immer eine WHERE-Klausel verwenden.
Wenn Join-Bedingungen in einer ON-Klausel enthalten sind, ist der Schlüssel-Join nicht die Standardeinstellung. Der Schlüssel-Join kann jedoch die Standardeinstellung sein, wenn Join-Bedingungen in einer WHERE-Klausel untergebracht werden.
In den Beispielen in dieser Dokumentation werden Join-Bedingungen in einer ON-Klausel verwendet. In Beispielen mit Outer-Joins ist dies erforderlich. In anderen Fällen wird so vorgegangen, um darauf hinzuweisen, dass es sich um Join-Bedingungen handelt und nicht um allgemeine Suchbedingungen.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |