NOT IN
opfører sig ikke som forventet, når in-listen indeholder NULL
værdier.
Faktisk, hvis nogen værdier er NULL
, så returneres ingen rækker overhovedet. Husk:I SQL, NULL
betyder "ubestemt" værdi, ikke "manglende værdi". Så hvis listen indeholder nogen NULL
værdi, så måske det være lig med en sammenligningsværdi.
Så customerid
skal være NULL
i orders
tabel.
Af denne grund anbefaler jeg kraftigt, at du altid bruger NOT EXISTS
med en underforespørgsel i stedet for NOT IN
.