sql >> データベース >  >> RDS >> Oracle

クエリにありません...奇妙な結果

    これを読んでください: 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

    そして、必要なのは4番目の例です:

    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. 犬と猫の両方を所有しているユーザーを選択します

    2. 致命的なエラー:クラス'Swift_smtpTransport'が見つかりません

    3. MySQLは、UPDATE/DELETEを介して重複データレコードを統合します

    4. PARSE()を使用してSQLServerで文字列を日付/時刻に変換する方法