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)

 

Generierte Joins und die ON-Klausel

Schlüssel-Joins sind die Standardeinstellung, wenn das Schlüsselwort JOIN verwendet und kein Join-Typ angegeben wird—außer Sie verwenden eine ON-Klausel. Wenn Sie eine ON-Klausel mit einem nicht spezifizierten JOIN verwenden, ist der Schlüssel-Join nicht die Standardeinstellung, und es wird keine generierte Join-Bedingung angewendet.

Folgendes ist z.B. ein Schlüssel-Join, da der Schlüssel-Join die Standardeinstellung ist, wenn das Schlüsselwort JOIN verwendet wird und keine ON-Klausel vorhanden ist:

SELECT *
FROM A JOIN B;

Folgendes ist ein Join zwischen Tabelle A und Tabelle B mit der Join-Bedingung A.x = B.y. Das ist kein Schlüssel-Join.

SELECT *
FROM A JOIN B ON A.x = B.y;

Wenn Sie einen KEY JOIN oder einen NATURAL JOIN angeben und eine ON-Klausel verwenden, ist die sich ergebende Join-Bedingung die Verbindung der generierten Join-Bedingung und der expliziten Join-Bedingung(en). Folgende Anweisung enthält z.B. zwei Join-Bedingungen: Eine wird aufgrund des Schlüssel-Joins generiert, und eine zweite ist explizit in der ON-Klausel angegeben.

SELECT *
FROM A KEY JOIN B ON A.x = B.y;

Wenn die vom Schlüssel-Join generierte Join-Bedingung A.w = B.z ist, ist die folgende Anweisung gleichwertig:

SELECT *
FROM A JOIN B
  ON A.x = B.y
  AND A.w = B.z;

Weitere Hinweise zu Schlüssel-Joins finden Sie unter Schlüssel-Joins.