NOT IN
non si comporta come previsto quando l'in-list contiene NULL
valori.
In effetti, se qualsiasi valore è NULL
, quindi non vengono restituite righe. Ricorda:in SQL, NULL
significa valore "indeterminato", non "valore mancante". Quindi, se l'elenco contiene qualsiasi NULL
valore allora potrebbe essere uguale a un valore di confronto.
Quindi, customerid
deve essere NULL
negli orders
tabella.
Per questo motivo, ti consiglio vivamente di utilizzare sempre NOT EXISTS
con una sottoquery anziché NOT IN
.