sql >> Database >  >> RDS >> Oracle

NIET IN zoekopdracht... vreemde resultaten

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


  1. Hoe sqlparameter doorgeven aan IN()?

  2. Hoe stel ik de eerste dag van de week in op maandag als ik Week(Date) gebruik in PHP/MySQL?

  3. Meerdere waarden van een kolom in één rij weergeven (SQL Oracle)

  4. Hoe een IF-statement in SQL uit te voeren?