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

Viele allgemeine Joins verbinden zwei Tabellen bezüglich des Fremdschlüssels. Der häufigste Join beschränkt Fremdschlüsselwerte auf eine exakte Übereinstimmung mit den Primärschlüsselwerten. Der Operator KEY JOIN verknüpft zwei Tabellen basierend auf einer Fremdschlüsselbeziehung. Das heißt, SQL Anywhere generiert eine ON-Klausel, die die Primärschlüsselspalte einer Tabelle mit der Fremdspalte der anderen Tabelle gleichsetzt. Um einen Schlüssel-Join zu verwenden, muss eine Fremdschlüsselbeziehung zwischen den Tabellen bestehen. Anderenfalls wird ein Fehler ausgegeben.

Ein Schlüssel-Join kann als Kurzform für die ON-Klausel betrachtet werden. Die beiden Abfragen sind identisch. Sie können jedoch auch die ON-Klausel mit einem KEY JOIN benutzen. KEY JOIN ist die Standardeinstellung, wenn Sie JOIN angeben, aber weder CROSS, NATURAL oder KEY festlegen noch eine ON-Klausel verwenden. Wenn Sie sich das Diagramm der SQL Anywhere-Beispieldatenbank ansehen, werden Sie feststellen, dass Fremdschlüssel durch Linien zwischen den Tabellen dargestellt werden. Überall dort, wo zwei Tabellen im Diagramm durch eine Linie verbunden sind, können Sie den Operator KEY JOIN verwenden. Weitere Hinweise zur SQL Anywhere-Beispieldatenbank finden Sie unter Praktische Einführung: Die Beispieldatenbank verwenden.

Schlüssel-Join als Standardeinstellung

Der Schlüssel-Join ist in SQL Anywhere die Standardeinstellung, wenn alle folgenden Bedingungen zutreffen:

  • Das Schlüsselwort JOIN wird verwendet.

  • Die Schlüsselwörter CROSS, NATURAL und KEY werden nicht angegeben.

  • Es ist keine ON-Klausel vorhanden.

Beispiel

Folgende Abfrage verknüpft beispielsweise die Tabellen "Products" und "SalesOrderItems" basierend auf der Fremdschlüsselbeziehung in der Datenbank.

SELECT *
FROM Products KEY JOIN SalesOrderItems;

Die nächste Abfrage ist gleichwertig. Hier fehlt das Schlüsselwort KEY, doch standardmäßig ist ein JOIN ohne eine ON-Klausel ein KEY JOIN, also ein Schlüssel-Join.

SELECT *
FROM Products JOIN SalesOrderItems;

Die nächste Abfrage ist ebenfalls gleichwertig, da die in der ON-Klausel angegebene Join-Bedingung dieselbe ist wie die Join-Bedingung, die SQL Anywhere für diese Tabellen basierend auf ihrer Fremdschlüsselbeziehung in der SQL Anywhere-Beispieldatenbank generiert.

SELECT *
FROM Products JOIN SalesOrderItems
ON SalesOrderItems.ProductID = Products.ID;

Schlüssel-Joins mit ON-Klausel
Schlüssel-Joins bei mehrfachen Fremdschlüsselbeziehungen
Schlüssel-Joins von Tabellenausdrücken
Schlüssel-Joins von Ansichten und abgeleiteten Tabellen
Regeln, die die Verarbeitung von Schlüssel-Joins beschreiben