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)

 

Join-Bedingungen in der WHERE-Klausel

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.

    Weitere Hinweise zur WHERE-Klausel und Outer-Joins finden Sie unter Outer-Joins und Join-Bedingungen.

  • 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.

    Weitere Hinweise zu den Bedingungen, unter denen der Schlüssel-Join der Standardwert ist, finden Sie unter Schlüssel-Join als Standardeinstellung.

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.