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

MySQLがCaseステートメントで結合

    内部結合全体を大文字と小文字を区別せず、結合の「on」句のみを大文字と小文字を区別します。これは機能するはずです(タイプミスがない限り):

      SELECT 
        conversation.c_id,
        conversation.user_one,
        conversation.user_two,
        users.name,
        users.lastName
      FROM `conversation` 
      INNER JOIN `users`
      on
      users.id =
      CASE
        WHEN conversation.user_one = 1
        THEN conversation.two 
        WHEN conversation.user_two = 1
        THEN conversation.user_one   
     END
     WHERE `user_one` = 1 OR `user_two` = 1
    

    これらの各条件を左結合し、selectステートメントでcaseステートメントを使用して、2つのテーブルのどちらからレコードを表示するかを決定することで、同様の効果を実現することもできます。




    1. 期待される結果を得るためにクエリまたは他のクエリを変更するのを手伝ってもらえますか

    2. PHPコードの速度が低下している場所を特定する(パフォーマンスの問題)

    3. PostgreSQLDBの現在の接続数を取得するための正しいクエリ

    4. Python SQLAlchemyクエリ:AttributeError:'接続'オブジェクトに属性がありません'contextual_connect'