[not] exists (…)


BigQueryDb2 (LUW)DerbyH2MariaDBMySQLOracle DBPostgreSQLSQL ServerSQLite2005200720092011201320152017201920212023✓ 3.5.7 - 3.50.0✓ 2008R2 - 2022✓ 8.3 - 17✓ 11gR1 - 23.9✓ 5.0 - 9.4.0✓ 5.1 - 12.0.2✓ 1.4.191 - 2.3.232✓ 10.15.1.3 - 10.17.1.0✓ 10.5 - 12.1.2a⚠ 9.7a⚠ 2.0a
  1. 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, ….

Normative Referenzen

Das Exists-Prädikat ist in ISO/IEC 9075-2:2023 als verpflichtende Funktion E061-08 definiert.

20 Jahre SQL-Evolution kann man nicht an einem Tag nachholen. Abonniere den Newsletter via E-Mail, Bluesky oder RSS, um sukzessive aufzuholen und modern-sql.com am Radar zu behalten.

Über den Autor

Foto von Markus Winand

Markus Winand gibt auf modern-sql.com Einblick in SQL und zeigt, wie es von verschiedenen Systemen unterstützt wird. Zuvor machte er use-the-index-luke.com, was er noch immer wartet. Markus kann als Trainer, Sprecher und Berater auf winand.at engagiert werden.

Sein Buch kaufen

Titelbild von „SQL Performance Explained“: Eichhörnchen läuft durchs Grass

Die Essenz: SQL-Tuning auf 200 Seiten

Jetzt Kaufen
(Taschenbuch und/oder PDF)

Sein Training

Markus verwandelt veraltetes SQL-92-Wissen in solides und zeitgemäßes SQL-Know-how

Erfahren Sie mehr»

Neuigkeiten Abonnieren

Markus Winands MailinglistenMarkus Winands RSS-FeedMarkus Winand auf LinkedInMarkus Winand auf XINGMarkus Winand auf TwitterMarkus Winand auf Bluesky
Copyright 2015-2025 Markus Winand. Alle Rechte vorbehalten.
Impressum | Kontakt | KEINE GEWÄHR | Handelsmarken | Datenschutz und DSGVO