SQL-Dojo · Unterabfragen
WHERE NOT EXISTS
Übungsaufgabe aus der Lernplattform: Aufgabenstellung hier lesen, Lösung dort schreiben und automatisch prüfen lassen.
Die Umkehrung von EXISTS: liefert TRUE, wenn die korrelierte Subquery
keine Zeile findet. Gedankengang: “Für diesen Mitarbeiter gibt es keinen
Eintrag in der Zuordnungstabelle.”
Damit hast du am Ende dieser Challenge drei verschiedene Werkzeuge für ein und
dieselbe Frage in der Hand: LEFT JOIN mit IS NULL aus dem JOIN-Track,
NOT IN aus Challenge 03 und jetzt NOT EXISTS. Sie liefern hier dasselbe
Ergebnis, verhalten sich aber unterschiedlich, sobald NULL-Werte oder
Zusatzbedingungen ins Spiel kommen.
NOT EXISTS ist dabei die Variante, zu der man in der Praxis am seltensten
zurückrudern muss. Sie hat die NULL-Falle von NOT IN nicht, und sie bleibt
lesbar, wenn die Bedingung wächst — etwa von „an keinem Projekt beteiligt” hin
zu „an keinem laufenden Projekt beteiligt”. Diese Aufgabe ist die schlanke
Grundform; die Gegenüberstellung aller drei Wege findest du danach in der
Erklärung.
Das steckt in der vollständigen Aufgabe
- Die Tabellen
- Deine Aufgabe
Die vollständige Aufgabenstellung mit Beispieldaten, Hinweisen und erklärter Musterlösung steht in der Lernplattform.
Lernplattform
Schreib die Lösung, wir prüfen sie.
In der Lernplattform arbeitest du direkt im Browser. Deine Lösung wird automatisch geprüft, mit Hinweisen bei Fehlern und einer erklärten Musterlösung.
Weitere Aufgaben aus Unterabfragen
Alle Aufgaben- Skalare Subquery: Vergleich mit einem Aggregat Das ist die erste Challenge im Subquery-Track. Bevor du die Aufgabe löst, solltest du verstehen, was eine Subquery überhaupt ist und wofür man sie braucht. Danach geht es um den einfachsten Fall: d... Leicht , Schwierigkeit 2 von 5 ca. 10 Minuten
- WHERE IN mit Subquery Aus dem Grundlagen-Track kennst du IN mit einer festen Liste: Die Liste kann aber auch aus einer anderen Tabelle kommen. Dafür ersetzt du die Liste durch eine Subquery, die eine Spalte mit Werten l... Leicht , Schwierigkeit 2 von 5 ca. 10 Minuten
- WHERE NOT IN: wer fehlt? Das Gegenstück zu IN: alle Werte, die nicht in der Subquery-Liste vorkommen. Typische Aufgabe: "Finde alle Kunden ohne Projekt". Die Liste "Kunden mit Projekt" liefert eine Subquery, und NOT IN dre... Mittel , Schwierigkeit 3 von 5 ca. 8 Minuten
- WHERE EXISTS: gibt es mindestens eine passende Zeile? EXISTS (subquery) ist ein Existenz-Test: Es liefert TRUE, wenn die Subquery mindestens eine Zeile findet, sonst FALSE. Im Gegensatz zu IN interessiert sich EXISTS nicht für konkrete Werte, sondern ... Mittel , Schwierigkeit 3 von 5 ca. 10 Minuten