Odhal záludný NULL bug a obejdi ho
Dotaz „najdi zákazníky, kteří nemají žádné objednávky" formulovaný pomocí NOT IN nese ošklivý bug: pokud poddotaz obsahuje byť jen jeden řádek s NULL, celé NOT IN tiše vrátí nula řádků — žádná chyba, žádné varování. Klasická past tříhodnotové logiky v SQL.
Bezpečným ekvivalentem je NOT EXISTS: vrátí řádek, když vnitřní dotaz nic nenašel, a vůči NULL je imunní. Přepiš kontrolu „zákazníci bez objednávek" pomocí NOT EXISTS tak, aby dotaz fungoval správně i s NULL v datech. Zobraz id a email takových zákazníků, seřaď podle id.
Ukázka očekávaného výstupu
Takto vypadá správná odpověď — počet řádků je její vlastní, nemusí odpovídat tabulkám schématu.
| id | |
|---|---|
| 3 | новый@email |
Přihlaste se, abyste viděli historii odevzdání
Přihlásit sePřihlaste se, abyste mohli použít AI mentora
Přihlásit se