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 » Funktionsweise von Joins

 

Verknüpfte Tabellen

SQL Anywhere unterstützt folgende Klassen von verknüpften Tabellen:

  • CROSS JOIN   Dieser Join-Typ von zwei Tabellen produziert alle möglichen Zeilenkombinationen aus den beiden Tabellen. Die Größe der Ergebnismenge ist die Anzahl der Zeilen in der ersten Tabelle multipliziert mit der Anzahl der Zeilen in der zweiten Tabelle. Ein Cross-Join wird auch als Kreuzprodukt oder kartesisches Produkt bezeichnet. Es ist nicht möglich, eine ON-Klausel mit einem CROSS JOIN zu verwenden.

  • KEY JOIN   Diese Art von Join-Bedingung verwendet Fremdschlüssel-Beziehungen zwischen den Tabellen. Der Schlüssel-Join ist die Standardeinstellung, wenn das JOIN-Schlüsselwort ohne Angabe eines Join-Typs (Wie z.B. INNER, OUTER usw.) verwendet wird und keine ON-Klausel enthalten ist.

  • NATURAL JOIN   Dieser Join wird automatisch basierend auf Spalten erzeugt, die denselben Namen haben.

  • Join mit ON-Klausel   Dieser Join-Typ ist das Ergebnis von expliziten Spezifikation der Join-Bedingung in einer ON-Klausel. Bei der Verwendung mit einem Schlüssel-Join oder einem natürlichen Join enthält die Join-Bedingung sowohl die generierte Join-Bedingung als auch die explizite Join-Bedingung. Wenn das Schlüsselwort JOIN ohne die Schlüsselwörter KEY oder NATURAL verwendet wird, gibt es keine generierte Join-Bedingung. Weitere Hinweise finden Sie unter Explizite Join-Bedingungen (ON-Klausel).

Inner- und Outer-Joins

Schlüssel-Joins, natürliche Joins und Joins mit einer ON-Klausel können durch die Angabe von INNER, LEFT OUTER, RIGHT OUTER oder FULL OUTER qualifiziert werden. Die Standardeinstellung ist INNER. Wenn Sie die Schlüsselwörter LEFT, RIGHT oder FULL verwenden, ist das Schlüsselwort OUTER optional.

In einem Inner-Join erfüllt jede Zeile im Ergebnis die Join-Bedingung.

In einem Links- oder Rechts-Outer-Join werden alle Zeilen für eine der Tabellen beibehalten, und für die andere Tabelle werden für die Zeilen, die die Join-Bedingung nicht erfüllen, NULL zurückgegeben. In einem Rechts-Outer-Join wird z.B. die rechte Seite beibehalten und die linke Seite liefert NULL.

In einem vollständigen Outer-Join werden alle Zeilen für beide Tabellen beibehalten, und Zeilen, die die Join-Bedingung nicht erfüllen, liefern NULL.