Wykryj podstępny błąd z NULL i go ominij
Zapytanie „znajdź klientów, którzy nie mają żadnych zamówień” sformułowane za pomocą NOT IN niesie ze sobą paskudny błąd: jeśli podzapytanie zawiera choćby jeden wiersz z NULL, całe NOT IN po cichu zwraca zero wierszy — bez błędu, bez ostrzeżenia. Klasyczna pułapka logiki trójwartościowej w SQL.
Bezpiecznym odpowiednikiem jest NOT EXISTS: zwraca wiersz, gdy wewnętrzne zapytanie niczego nie znalazło, i jest odporne na NULL. Przepisz sprawdzenie „klienci bez zamówień” za pomocą NOT EXISTS tak, aby zapytanie działało poprawnie nawet przy NULL w danych. Pokaż id i email takich klientów, posortuj według id.
Przykładowy oczekiwany wynik
Tak wygląda poprawna odpowiedź — liczba jej wierszy jest swoista i nie musi odpowiadać tabelom ze schematu.
| id | |
|---|---|
| 3 | новый@email |
Zaloguj się, aby zobaczyć historię rozwiązań
Zaloguj sięZaloguj się, aby korzystać z Mentora AI
Zaloguj się