NOT IN
tidak berperilaku seperti yang diharapkan ketika in-list berisi NULL
nilai.
Faktanya, jika ada nilai NULL
, maka tidak ada baris yang dikembalikan sama sekali. Ingat:Dalam SQL, NULL
berarti nilai "tak tentu", bukan "nilai yang hilang". Jadi, jika daftar berisi NULL
nilai maka mungkin sama dengan nilai perbandingan.
Jadi, customerid
harus NULL
di orders
tabel.
Untuk alasan ini, saya sangat menyarankan Anda untuk selalu menggunakan NOT EXISTS
dengan subquery daripada NOT IN
.