Anfang des InhaltsbereichsCorrelated Subquery Dokument im Navigationsbaum lokalisieren

Gewisse Prädikate können Subqueries enthalten. Diese Subqueries können wiederum Subqueries enthalten, usw. Eine Subquery, die Subqueries enthält, ist von höherer Stufe als die in ihr enthaltenen Subqueries.

Wenn der qualifizierende Tabellen- oder Referenzname nicht eindeutig eine Tabelle höherer Stufe bezeichnet, wird unter diesen nicht eindeutigen Tabellen die Tabelle niedrigster Stufe genommen.

Wird der Spaltenname nicht durch den Tabellennamen oder den Referenznamen qualifiziert, wird in den Tabellen höherer Stufen gesucht. Der Spaltenname muß dann in allen Tabellen der FROM-Klausel, zu der die gefundene Tabelle gehört, eindeutig sein.

Wird eine Correlated Subquery verwendet, gehen die Werte einer oder mehrerer Spalten einer Zwischenergebniszeile einer höheren Stufe in die Suchbedingung einer Subquery niederer Stufe ein, wobei das Ergebnis der Subquery für die endgültige Qualifikation der Zwischenergebniszeile der höheren Stufe verwendet wird.

Beispiel

Beispieltabellen hotel und raum.
Zu jedem Ort sind alle Hotelnamen gesucht, deren Preise unter den Durchschnittspreisen des jeweiligen Ortes liegen.

SELECT name, ort FROM hotel X, raum
WHERE X.hnr = raum.hnr AND raum.preis <
(SELECT AVG(raum.preis) FROM hotel, raum
WHERE hotel.hnr = raum.hnr AND hotel.ort = X.ort )

Ende des Inhaltsbereichs