Matthias Bernauer - Freiburg im Breisgau
      Start > Skript-Sammlung > Datenbanksysteme > Subqueries >>







Subqueries


In Subqueries werden mehrere SELECT-Anfragen ineinander geschachtelt. Subqueries können dabei WHERE- oder auch FROM-Klausel stehen.

SELECT ‹attr-list›
FROM ‹table-list›
WHERE ‹attribute› {<, >, <=, >=, !=, IN, ANY, ALL} <subquery>;

wobei <subquery> eine gewöhnliche SELECT-Anfrage ist und

Bei den Vergleichsrelationen (<,>,=, ...) muss die Subquery ein einspaltiges Ergebnis liefern. Bei IN sind mehrere Spalten erlaubt.


Beispiel:

  Einwohnerzahl aller Länder, die Mitglieder der EU sind

SELECT SUM(Einwohner)
FROM Laender
WHERE name
   IN (SELECT Land FROM Organisationen WHERE name = 'EU');


Man unterscheidet korrelierte und unkorrelierte Subqueries.
  • Eine Subquery ist unkorreliert, wenn sie unabhängig von den Werten des in der umgebenden Anfrage verarbeiteten Tupels ist. Subqueries dienen oftmals als Hilfsrelation oder Zwischenergebnis der eigentlichen, übergeordneten Anfrage. Dazu wird die Subquery vor der umgebenden Anfrage einmal ausgewertet.
  • Eine Subquery ist korreliert, wenn in sie von Attributwerten des gerade von der umgebenden Anfrage verarbeiteten Tupels abhängig ist. In diesem Fall wird die Subquery für jedes Tupel der umgebenden Anfrage einmal ausgewertet.

Google MSN Suche
<< Start | Studium | Poolmgr | Tanzen | GPG | Impressum >>
Matthias Bernauer