Einen heimtückischen NULL-Bug erkennen und umgehen
Die mit NOT IN formulierte Abfrage „finde Kunden, die keine Bestellungen haben“ birgt einen üblen Bug: Enthält die Unterabfrage auch nur eine einzige NULL-Zeile, liefert das gesamte NOT IN stillschweigend null Zeilen — ohne Fehler, ohne Warnung. Eine klassische Falle der dreiwertigen Logik in SQL.
Die sichere Entsprechung ist NOT EXISTS: Sie liefert eine Zeile, wenn die innere Abfrage nichts gefunden hat, und ist immun gegen NULL. Schreibe die Prüfung „Kunden ohne Bestellungen“ mit NOT EXISTS um, sodass die Abfrage auch bei NULL in den Daten korrekt funktioniert. Zeige die id und die E-Mail solcher Kunden und sortiere nach id.
Beispiel der erwarteten Ausgabe
So sieht eine korrekte Antwort aus — ihre Zeilenanzahl ist eigenständig und muss nicht mit den Schematabellen übereinstimmen.
| id | |
|---|---|
| 3 | новый@email |
Melde dich an, um den Einreichungsverlauf zu sehen
AnmeldenMelde dich an, um den KI-Mentor zu nutzen
Anmelden