sql >> Databasteknik >  >> RDS >> Oracle

INTE I fråga... udda resultat

Läs detta:http://asktom.oracle.com/pls/asktom/f?p=100:11:0::NO::P11_QUESTION_ID:442029737684

Vad jag förstår är ditt cudsubq.new_user_id kan vara NULL även om båda tabellerna är sammanfogade av user_id , så du får inga resultat med NOT IN operator när delmängden innehåller NULL värden . Tänk på exemplet i artikeln:

select * from dual where dummy not in ( NULL )

Detta returnerar inga poster. Prova att använda koden NOT EXISTS operatör eller bara en annan typ av join. Här är en bra källa:http ://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

Och vad du behöver är det fjärde exemplet:

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. Hur man hittar tabell där statistik är låst

  2. Magento:SQLSTATE[23000]:Överträdelse av integritetsbegränsning:1062 Dubblettpost '100000001' för nyckeln 'UNQ_SALES_FLAT_ORDER_IN

  3. MySQL-syntaxfel med LIMIT-kommandot med Prepared Statement i Java

  4. Dynamiskt kolumnnamn med förberedd sats + sql-fråga med variabel som innehåller 's