sql >> Database teknologi >  >> RDS >> Oracle

IKKE I forespørgsel... ulige resultater

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

Så vidt jeg forstår, er dit cudsubq.new_user_id kan være NULL selvom begge tabeller er forbundet af user_id , så du får ikke resultater ved at bruge NOT IN operator, når undersættet indeholder NULL værdier . Overvej eksemplet i artiklen:

select * from dual where dummy not in ( NULL )

Dette returnerer ingen optegnelser. Prøv at bruge koden NOT EXISTS operatør eller bare en anden slags join. Her er en god kilde:http ://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

Og hvad du har brug for, er det fjerde eksempel:

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. Postgres indstilling af autocommit globalt

  2. MySQL:vælg, grupper efter og transformer rækker til separate kolonner :)

  3. Hurtig import af data til mysql i Java

  4. Afkrydsningsfelter tjekker ud tilfældigt