- EXISTS-Unterafrage wird in Join-Prädikaten nicht unterstützt
Exists prüft, ob das Ergebnis einer Unterabfrage leer ist oder nicht.
SELECT *
FROM customers
WHERE NOT EXISTS (SELECT *
FROM customers.id = orders.customer_id
)Das Beispiel liefert alle Kunden, die noch keine Bestellung aufgegeben haben – für die keine Bestellung existiert. Not Exists wird auch als Anti-Join, Exists als Semi-Join bezeichnet.
Die in der Unterabfrage selektierten Spalten sind irrelevant. Der Stern (*) ist üblich und bedeutet in diesem Zusammenhang nicht „alle Spalten“. Exists kann überall verwendet werden, wo Bedingungen erlaubt sind: Where, Having, Case When, ….
Weiterführende Links
Standard-Funktionen
F671, „Subqueries in CHECK constraints“
Produktspezifische Funktionen:
exception join.
Normative Referenzen
Das Exists-Prädikat ist in ISO/IEC 9075-2:2023 als verpflichtende Funktion E061-08 definiert.

