NOT IN
не се държи според очакванията, когато входящият списък съдържа NULL
стойности.
Всъщност, ако има стойности NULL
, тогава не се връщат никакви редове. Запомнете:В SQL, NULL
означава "неопределена" стойност, а не "липсваща стойност". Така че, ако списъкът съдържа NULL
стойност, тогава може да е равна на стойност за сравнение.
И така, customerid
трябва да бъде NULL
в orders
таблица.
Поради тази причина силно препоръчвам винаги да използвате NOT EXISTS
с подзаявка вместо NOT IN
.