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

WHEREでnullが整数に等しいのはなぜですか?

    NULL cannot be equal to anything
    不足しているのは、NULLを等しくすることはできないということです。 、どちらか

    NULL 何と比較しても常にNULL 。手元にある問題は、LEFT JOINを取得したことです。 違う。これは機能するはずです:

    SELECT v.user_id, v.version_id, vv.user_id
    FROM   versions v
    LEFT   JOIN versions_votes vv ON v.version_id = vv.version_id
                                 AND vv.user_id = 39
    WHERE  vv.version_id IS NULL
    ORDER  BY v.created
    LIMIT  1;
    

    vvを参照する追加の条件がありました WHERE 句:AND vv.user_id != 39 。おそらくNULL != 39を期待しています 資格がありますが、そうではありません。この関連する回答の詳細:
    左結合を使用したクエリがカウント0の行を返さない

    基本的に3つのテクニックがあります これを行うには:
    他のテーブルに存在しない行を選択




    1. MySQL制限パフォーマンス

    2. MySQLパスワードの問題(mac OS X Lion)

    3. SQLServerとOracleの「ユーザー」の違い

    4. JSON_QUERY()SQL Server(T-SQL)の例