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

 

Join-Bedingungen

Tabellen können mit Join-Bedingungen kombiniert werden. Eine Join-Bedingung ist eine Suchbedingung. Sie wählt eine Teilmenge von Zeilen aus den verknüpften Tabellen aus, basierend auf den Beziehungen zwischen den Werten in den Spalten. Folgende Abfrage ruft z.B. Daten aus den Tabellen "Products" und "SalesOrderItems" ab.

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

Die Join-Bedingung in dieser Abfrage lautet wie folgt:

Products.ID = SalesOrderItems.ProductID

Diese Join-Bedingung bedeutet, dass Zeilen in der Ergebnismenge nur kombiniert werden können, wenn sie in beiden Tabellen dieselbe Produkt-ID haben.

Join-Bedingungen können explizit sein oder generiert werden. Eine explizite Join-Bedingung ist eine Join-Bedingung, die sich in einer ON- oder WHERE-Klausel befindet. Folgende Abfrage verwendet eine ON-Klausel: Sie produziert ein Kreuzprodukt der beiden Tabellen (alle Zeilenkombinationen), wobei jedoch Zeilen ausgeschlossen werden, deren ID-Nummern nicht übereinstimmen. Das Ergebnis ist eine Liste mit Kunden und Details ihrer Bestellungen.

SELECT *
FROM Customers 
JOIN SalesOrders
ON SalesOrders.CustomerID = Customers.ID;

Eine generierte Join-Bedingung ist eine Join-Bedingung, die automatisch erstellt wird, wenn Sie KEY JOIN oder NATURAL JOIN festlegen. Bei einem Schlüssel-Join basiert die generierte Bedingung auf der Fremdschlüsselbeziehung zwischen den Tabellen. Im Fall eines natürliche Joins basiert die Join-Bedingung auf Spalten, die denselben Namen haben.

Tipp

Die Syntax des Schlüssel-Joins und des natürlichen Joins sind Abkürzungen: Sie erhalten identische Ergebnisse, wenn Sie das Schlüsselwort JOIN ohne KEY oder NATURAL verwenden und dann dieselbe Join-Bedingung in einer ON-Klausel angeben.

Wenn Sie eine ON-Klausel mit einem Schlüssel-Join oder einem natürlichen Join verwenden, ist die Join-Bedingung die Verbindung der expliziten Join-Bedingung mit der generierten Join-Bedingung. Das bedeutet, dass die Join-Bedingungen mit dem Schlüsselwort AND verknüpft werden.