Lees dit:http://asktom.oracle.com/pls/asktom/f?p=100:11:0::NO::P11_QUESTION_ID:442029737684
Voor wat ik begrijp, uw cudsubq.new_user_id
kan NULL
zijn ook al zijn beide tabellen verbonden door user_id
, dus u krijgt geen resultaten met de NOT IN
operator wanneer de subset NULL
. bevat waarden . Bekijk het voorbeeld in het artikel:
select * from dual where dummy not in ( NULL )
Dit levert geen records op. Probeer de NOT EXISTS
operator of gewoon een ander soort join. Hier is een goede bron:http ://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html
En wat je nodig hebt is het vierde voorbeeld:
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