NOT IN
nechová se podle očekávání, když seznam obsahuje NULL
hodnoty.
Ve skutečnosti, pokud jsou nějaké hodnoty NULL
, pak se nevrátí vůbec žádné řádky. Pamatujte:V SQL NULL
znamená "neurčitou" hodnotu, nikoli "chybějící hodnotu". Pokud tedy seznam obsahuje NULL
hodnotu, pak by to mohlo být rovna srovnávací hodnotě.
Takže customerid
musí být NULL
v orders
tabulka.
Z tohoto důvodu důrazně doporučuji, abyste vždy používali NOT EXISTS
s poddotazem spíše než NOT IN
.