Прочетете това:http://asktom.oracle.com/pls/asktom/f?p=100:11:0::NO::P11_QUESTION_ID:442029737684
Доколкото разбирам, вашият cudsubq.new_user_id
може да бъде NULL
въпреки че и двете таблици са обединени от user_id
, така че няма да получите резултати, като използвате NOT IN
оператор, когато подмножеството съдържа NULL
стойности . Разгледайте примера в статията:
select * from dual where dummy not in ( NULL )
Това не връща записи. Опитайте да използвате NOT EXISTS
оператор или просто друг вид присъединяване. Ето добър източник:http ://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html
И това, от което се нуждаете, е четвъртият пример:
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