SQL Erste Schritte

Verwenden einer Unterabfrage

Beim Schreiben einer SQL-Anweisung SELECT können Sie zusätzliche Anweisungen SELECT in die Klausel WHERE stellen. Jede zusätzliche Anweisung SELECT startet eine Unterabfrage.

Eine Unterabfrage kann dann wiederum eine weitere, separate Unterabfrage enthalten, deren Ergebnis in die Klausel WHERE der ursprünglichen Unterabfrage eingesetzt wird. Außerdem kann eine Klausel WHERE Unterabfragen in mehreren Suchbedingungen enthalten. Die Unterabfrage kann sich auf andere Tabellen und Spalten als die Hauptabfrage beziehen.

Die folgende Anweisung wählt den Unternehmensbereich (Spalte DIVISION) und den Standort (Spalte LOCATION) aus der Tabelle ORG für den Mitarbeiter aus, dessen ID in der Tabelle STAFF 280 lautet:

     SELECT DIVISION, LOCATION
        FROM ORG
        WHERE DEPTNUMB = (SELECT DEPT
                             FROM STAFF
                             WHERE ID = 280)

Beim Verarbeiten einer Anweisung bestimmt DB2 zunächst das Ergebnis der Unterabfrage. Das Ergebnis der Unterabfrage aus dem Beispiel ist 66, da der Mitarbeiter mit der ID 280 zur Abteilung 66 gehört. Das Endergebnis wird anschließend aus der Zeile der Tabelle ORG entnommen, deren Spalte DEPTNUMB den Wert 66 hat. Das Endergebnis lautet:

     DIVISION   LOCATION     
     ---------- -------------
     Western    San Francisco

Wenn Sie eine Unterabfrage verwenden, wertet der Datenbankmanager sie aus und setzt den resultierenden Wert direkt in die Klausel WHERE ein.

Unterabfragen werden im Abschnitt Unterabfragen mit Korrelationsbezug näher erläutert.



[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]