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

OracleとLeftOuterの結合

    これらのユーザーは戻ってきますが、左側の結合で適切な結合が見つからなかったテーブルに返されたすべての列に対してnullとして戻ってきます。

    null <> 1

    であるため、ANSInullがどのように機能するかによりb4_.ACTIVE=1はこれらのレコードに対して無効になります。

    whereブロックを次のように再構築してみてください:

    AND (b4_.ACTIVE=1 or b4_.ACTIVE is null) 
        AND (B4_.STATUS='A' or B4_.STATUS is null) 
        AND (UB2_.VISIBLE=1 or UB2_.VISIBLE is null)
        and (bl3_.ACTIVE=1 or bl3_.ACTIVE is null)
    

    これに取り組む別の方法は、左結合に前提条件を追加することです。以下のように行うことができます。アクティブ<>1のバッジは除外され、不良バッジは除外されますが、それでもすべてのユーザーが返されます。

     left outer join
            REWARD.BADGES b4_ 
                on bl3_.BADGEID=b4_.ID 
                    AND b4_.ACTIVE=1
    



    1. mysql_connect returnリモートホスト接続のソケットを介してローカルMySQLサーバーに接続できませんか?

    2. @Column(unique =true)が機能していないようです

    3. エラーメッセージのないエラーをデバッグするにはどうすればよいですか?

    4. mySQLのEXECUTEステートメントの後にステートメントの結果を取得するにはどうすればよいですか?