Collection Contents Zurück Weiter PDF

SQL Anywhere Studio Erste Orientierung

Daten aus mehreren Tabellen auswählen

Tabellen mithilfe eines Key-Joins verbinden


Zwischen zwei durch einen Fremdschlüssel verbundenen Tabellen gibt es viele Joins. 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 der Fremdschlüsselbeziehung. Das heißt, Adaptive Server Anywhere generiert eine ON-Klausel, die die Primärschlüsselspalte einer Tabelle mit der Fremdschlüsselspalte der anderen Tabelle gleichsetzt.

Das Beispiel im vorherigen Abschnitt grenzt Fremdschlüsselwerte in der Auftragstabelle sales_order daraufhin ein, dass sie den Primärschlüsselwerten in der Mitarbeitertabelle employee entsprechen müssen.

SELECT employee.emp_lname,
       sales_order.id,
       sales_order.order_date
FROM sales_order JOIN employee
   ON sales_order.sales_rep = employee.emp_id

Die Abfrage kann einfacher mithilfe eines KEY JOINS ausgedrückt werden.

SELECT employee.emp_lname,
       sales_order.id,
       sales_order.order_date
FROM sales_order KEY JOIN employee

KEY JOIN ist lediglich eine Kurzform für die Eingabe der ON-Klausel. Die beiden Abfragen sind identisch. 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 Mitarbeiterdatenbank ansehen, werden die Fremdschlüssel durch Linien zwischen den Tabellen dargestellt. Überall dort, wo zwei Tabellen im Diagramm durch eine Linie verbunden sind, können Sie den Operator KEY JOIN verwenden.

Ein Diagramm der Beispieldatenbank finden Sie unter Zur Beispieldatenbank.

Mehr als zwei Tabellen mit einem Join verbinden 

Sie können zwei oder mehr Tabellen durch Join-Operatoren verknüpfen. Folgende Abfrage verwendet vier Tabellen, um den Gesamtwert der von den einzelnen Kunden platzierten Aufträge aufzulisten. Sie verbindet die vier Tabellen customer, sales_order, sales_order_items und product mithilfe der einzelnen Fremdschlüssel-Beziehungen zwischen den verschiedenen Tabellenpaaren.

So listen Sie Unternehmen und den Gesamtwert ihrer Bestellungen auf

Hinweise 

Ihre Ergebnismenge wird eventuell in einer anderen Reihenfolge angezeigt. Die Reihenfolge der Zeilen in der Ergebnismenge spielt keine Rolle.

In diesem Beispiel wird der Operator SUM verwendet, eine Aggregatfunktion. Für Aggregatfunktionen werden GROUP BY-Klauseln benötigt, mit denen Werte einzelner Zeilengruppen ermittelt werden können. Im vorliegenden Beispiel wird für jeden Firmennamen (company_name) die Summe von sales_order_items.quantity * product.unit_price – also der Gesamtbetrag pro Produkttyp – berechnet. Auf diese Weise wird der Umsatz jedes Unternehmens dargestellt.

Durch die Klammern in der FROM-Klausel wird die Reihenfolge klarer, in der die Joins erstellt wurden.

Weitere Hinweise zu komplexen Schlüssel-Joins finden Sie unter Schlüssel-Joins.


Collection Contents Zurück Weiter PDF