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 » Schlüssel-Joins » Schlüssel-Joins von Tabellenausdrücken

 

Schlüssel-Joins von Tabellenausdrücken ohne Kommas

Wenn beide Tabellenausdrücke keine Kommas enthalten, untersucht SQL Anywhere die Fremdschlüsselbeziehungen in den Tabellenpaaren in der Anweisung und generiert eine einzige Join-Bedingung.

Folgender Join hat z.B. zwei Tabellenpaare, A-C und B-C.

(A NATURAL JOIN B) KEY JOIN C

SQL Anywhere generiert eine einzige Join-Bedingung, um C mit (A NATURAL JOIN B) zu verknüpfen, indem der Server die Fremdschlüsselbeziehung in den Tabellenpaaren A-C und B-C untersucht. Der Server erstellt eine Join-Bedingung für die beiden Paare gemäß den Regeln zur Festlegung von Schlüssel-Joins, wenn mehrere Fremdschlüsselbeziehungen vorhanden sind:

  • Zunächst wird in A-C und B-C nach einem einzigen Fremdschlüssel gesucht, dessen Rollenname dem Korrelationsnamen einer der beiden Primärschlüsseltabellen entspricht, die er referenziert. Wenn genau ein Fremdschlüssel diese Bedingung erfüllt, wird dieser verwendet. Wenn mehrere Fremdschlüssel mit dem Rollennamen der Korrelation einer Tabelle vorhanden sind, ist der Join zweideutig, und es wird ein Fehler ausgegeben.

  • Wenn kein Fremdschlüssel mit dem Namen der Korrelation einer Tabelle vorhanden ist, sucht SQL Anywhere nach einer beliebigen Fremdschlüsselbeziehung zwischen den Tabellen. Wenn es eine solche Beziehung gibt, wird sie verwendet. Wenn es mehrere gibt, ist der Join zweideutig, und es wird ein Fehler ausgegeben.

  • Wenn keine Fremdschlüsselbeziehung vorhanden ist, wird ein Fehler ausgegeben.

 Beispiel