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 .