Zurück

Unteranfragen in der SELECT-Klausel, Korreliertheit

Vor
Unteranfragen in der SELECT-KlauselKorrelierte UnteranfragenÜbungen

Unteranfragen in der SELECT-Klausel

Auch in der SELECT- Klausel ist die Verwendung von Unteranfragen möglich.

Korrelierte Unteranfragen

Unteranfragen können sich auch auf Attribute der übergeordneten Anfragen beziehen. In diesem Fall spricht man von einer korrelierten Unteranfrage. Bei namensgleichen Attributen in der Ober- und Unteranfrage müssen wieder die Tabellennamen bzw. deren Aliasnamen verwendet werden.

Welche Fachbetreuer unter Angabe des Faches gibt es?

SQL - AnfrageErgebnis - Tabelle
SELECT Fach, ( SELECT Name
FROM Lehrkraft
WHERE Lehrkraft = PersNr ) AS Fachbetreuung
FROM hat_Fachbetreuung_in ;

Übungsdatenbank

Bemerkung
  • Im obigen Beispiel ist das Attribut Name mehrdeutig, damit muss der entsprechende Tabellenname oder Aliasname zusätzlich angegeben werden. Bei eindeutigen Attributen wie PersNr ist das nicht notwendig.
  • Die obige SQL-Anfrage soll lediglich das Prinzip korrelierter Unteranfragen zeigen. Die Fragestellung kann mit Hilfe eines Joins einfacher formuliert werden!

    SELECT Fach, Name AS Fachbetreuung
    FROM Lehrkraft , hat_Fachbetreuung_in
    WHERE Lehrkraft = PersNr ;

Welche Lehrkräfte haben die Lehrbefähigung im Fach Informatik?

Welche Lehrkräfte haben noch keine Unterrichtstunden?

Gesucht sind die Personalnummern der Lehrkräfte, die gleichzeitig in Fachbetreuung und Klassenleitung eingebunden sind.