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.
| id | |
|---|---|
| 3 | новый@email |
Kirjaudu sisään nähdäksesi palautushistorian
Kirjaudu sisäänKirjaudu sisään käyttääksesi tekoälymentoria
Kirjaudu sisään