#820

Tunnista salakavala NULL-bugi ja kierrä se

Kysely «etsi asiakkaat, joilla ei ole tilauksia» NOT IN -muodossa sisältää ikävän bugin: jos alikysely sisältää edes yhden NULL-rivin, koko NOT IN palauttaa hiljaisesti nolla riviä — ei virhettä, ei varoitusta. Klassinen SQL:n kolmiarvoisen logiikan ansa. Turvallinen vastine on NOT EXISTS: se palauttaa rivin, kun sisäkysely ei löytänyt mitään, ja on immuuni NULL-arvoille. Kirjoita «asiakkaat ilman tilauksia» -tarkistus uudelleen käyttäen NOT EXISTS -rakennetta niin, että kysely toimii oikein myös silloin, kun datassa on NULL. Näytä tällaisten asiakkaiden id ja email, lajittele id:n mukaan.

Odotetun tulosteen näyte

Näin oikea vastaus näyttää — sen rivimäärä on omansa, eikä sen tarvitse vastata skeeman tauluja.

idemail
3новый@email

Kyselysi tulos näkyy tässä