Baca ini:http://asktom.Oracle.com/pls/asktom/f?p=100:11:0::NO::P11_QUESTION_ID:442029737684
Untuk apa yang saya pahami, cudsubq.new_user_id
Anda bisa NULL
meskipun kedua tabel digabungkan dengan user_id
, jadi, Anda tidak akan mendapatkan hasil menggunakan NOT IN
operator ketika subset berisi NULL
nilai . Perhatikan contoh di artikel:
select * from dual where dummy not in ( NULL )
Ini tidak mengembalikan catatan. Coba gunakan NOT EXISTS
operator atau hanya jenis lain dari bergabung. Ini adalah sumber yang bagus:http ://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html
Dan yang Anda butuhkan adalah contoh keempat:
SELECT COUNT(descr.user_id)
FROM
user_profile prof
LEFT OUTER JOIN user_desc descr
ON prof.user_id = descr.user_id
WHERE descr.new_user_id IS NULL
OR descr.new_user_id != prof.user_id