Atrod viltīgu NULL kļūdu un apej to
Vaicājumam «atrod klientus, kuriem nav neviena pasūtījuma», kas formulēts ar NOT IN, ir nejauka kļūda: ja apakšvaicājumā ir kaut viena rinda ar NULL, viss NOT IN klusi atgriež nulli rindu — bez kļūdas, bez brīdinājuma. Tas ir klasisks SQL trīsvērtību loģikas slazds.
Drošais ekvivalents ir NOT EXISTS: tas atgriež rindu, kad iekšējais vaicājums neko neatrada, un ir imūns pret NULL. Pārraksti pārbaudi «klienti bez pasūtījumiem», izmantojot NOT EXISTS, lai vaicājums darbotos pareizi pat ar NULL datos. Parādi šādu klientu identifikatoru un email, sakārto pēc identifikatora.
Sagaidāmais izvades paraugs
Tā izskatās pareiza atbilde — tās rindu skaits ir pašai savs, tam nav jāatbilst shēmas tabulām.
| id | |
|---|---|
| 3 | новый@email |
Pieslēdzies, lai redzētu iesniegumu vēsturi
PieslēgtiesPieslēdzies, lai izmantotu AI mentoru
Pieslēgties