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

 

Regeln, die die Verarbeitung von Schlüssel-Joins beschreiben

Folgende Regeln fassen die oben gegebenen Informationen zusammen:

Regel 1: Zwei Tabellen mit Schlüssel-Join verknüpfen

Diese Regel gilt für A KEY JOIN B, wobei A und B Basis- oder temporäre Tabellen sind.

  1. Es werden alle Fremdschlüssel aus A gesucht, die B referenzieren.

    Wenn ein Fremdschlüssel vorhanden ist, dessen Rollenname der Korrelationsname von Tabelle B ist, wird er als bevorzugter Fremdschlüssel markiert.

  2. Es werden alle Fremdschlüssel aus B gesucht, die A referenzieren.

    Wenn ein Fremdschlüssel vorhanden ist, dessen Rollenname der Korrelationsname von Tabelle A ist, wird er als bevorzugter Fremdschlüssel markiert.

  3. Wenn mehrere bevorzugte Schlüssel vorhanden sind, ist der Join zweideutig. Der Syntaxfehler SQLE_AMBIGUOUS_JOIN (-147) wird ausgegeben.

  4. Wenn es einen einzigen bevorzugten Schlüssel gibt, wird dieser Fremdschlüssel ausgewählt, um die generierte Join-Bedingung für diesen KEY JOIN-Ausdruck festzulegen.

  5. Wenn es keinen bevorzugten Schlüssel gibt, werden andere Fremdschlüssel von A und B verwendet:

    • Wenn mehrere Fremdschlüssel zwischen A und B vorhanden sind, ist der Join zweideutig. Der Syntaxfehler SQLE_AMBIGUOUS_JOIN (-147) wird ausgegeben.

    • Wenn es einen einzigen Fremdschlüssel gibt, wird dieser Fremdschlüssel ausgewählt, um die generierte Join-Bedingung für diesen KEY JOIN-Ausdruck festzulegen.

    • Wenn es keinen Fremdschlüssel gibt, ist der Join ungültig, und es wird ein Fehler ausgegeben.

Regel 2: Tabellenausdrücke ohne Kommas mit Schlüssel-Join verknüpfen

Diese Regel gilt für A KEY JOIN B, wobei A und B Tabellenausdrücke sind, die keine Kommas enthalten.

  1. Für jedes Tabellenpaar, jeweils eine Tabelle aus Ausdruck A und eine Tabelle aus Ausdruck B, werden alle Fremdschlüssel aufgelistet und alle bevorzugten Fremdschlüssel zwischen den Tabellen markiert. Die Regel zur Bestimmung eines bevorzugten Fremdschlüssel ist in Regel 1 beschrieben.

  2. Wenn mehrere bevorzugte Schlüssel vorhanden sind, ist der Join zweideutig. Der Syntaxfehler SQLE_AMBIGUOUS_JOIN (-147) wird ausgegeben.

  3. Wenn es einen einzigen bevorzugten Schlüssel gibt, wird dieser Fremdschlüssel ausgewählt, um die generierte Join-Bedingung für diesen KEY JOIN-Ausdruck festzulegen.

  4. Wenn es keinen bevorzugten Schlüssel gibt, werden andere Fremdschlüssel der Tabellenpaare verwendet:

    • Wenn mehrere Fremdschlüssel vorhanden sind, ist der Join zweideutig. Der Syntaxfehler SQLE_AMBIGUOUS_JOIN (-147) wird ausgegeben.

    • Wenn es einen einzigen Fremdschlüssel gibt, wird dieser Fremdschlüssel ausgewählt, um die generierte Join-Bedingung für diesen KEY JOIN-Ausdruck festzulegen.

    • Wenn es keinen Fremdschlüssel gibt, ist der Join ungültig, und es wird ein Fehler ausgegeben.

Regel 3: Tabellenausdruckslisten durch Schlüssel-Joins verknüpfen

Diese Regel gilt für (A1, A2, ...) KEY JOIN ( B1, B2, ...), wobei A1, B1 usw. Tabellenausdrücke sind, die keine Kommas enthalten.

  1. Für jedes Paar von Tabellenausdrücken, Ai und Bj, wird eine eindeutige generierte Join-Bedingung für den Tabellenausdruck (Ai KEY JOIN Bj) gesucht. Dabei wird Regel 1 oder 2 angewendet. Falls ein KEY JOIN eines Tabellenausdruckspaars nach Regel 1 oder 2 zweideutig ist, wird ein Syntaxfehler ausgegeben.

  2. Die generierte Join-Bedingung für diesen KEY JOIN-Ausdruck ist die Verbindung der in Schritt 1 gefundenen Join-Bedingungen.

Regel 4: Listen und Tabellenausdrücke ohne Kommas durch Schlüssel-Joins verknüpfen

Diese Regel gilt für (A1, A2, ...) KEY JOIN ( B1, B2, ...), wobei A1, B1 usw. Tabellenausdrücke sind, die Kommas enthalten können.

  1. Für jedes Paar von Tabellenausdrücken, Ai und Bj, wird eine eindeutige generierte Join-Bedingung für den Tabellenausdruck (Ai KEY JOIN Bj) gesucht. Dabei wird Regel 1, 2 oder 3 angewendet. Falls ein KEY JOIN eines Tabellenausdruckspaars nach Regel 1, 2 oder 3 zweideutig ist, wird ein Syntaxfehler ausgegeben.

  2. Die generierte Join-Bedingung für diesen KEY JOIN-Ausdruck ist die Verbindung der in Schritt 1 gefundenen Join-Bedingungen.