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

同じテーブル内の複数の列に対して内部結合を実行する

    これは進むべき道のようです:

    SELECT
      A.answer_id
      ,C1.color_name AS favorite_color_name
      ,C2.color_name AS least_favorite_color_name
      ,C3.color_name AS color_im_allergic_to_name
    FROM tbAnswers AS A
    INNER JOIN tbColors AS C1
      ON A.favorite_color = C1.color_code
    INNER JOIN tbColors AS C2
      ON A.least_favorite_color = C2.color_code
    INNER JOIN tbColors AS C3
      ON A.color_im_allergic_to = C3.color_code
    

    「ばかげた」というよりは、これはかなり標準的なクエリだと思います。これは、すべての列が有効な値を持つことも前提としています。それ以外の場合は、すべての内部結合を左結合に置き換えます




    1. BatchUpdateException:バッチは終了しません

    2. Postgres:多対多のリレーションテーブルで最小行数と最大行数を取得します

    3. MySQLの不規則なクエリ時間

    4. MySQL-GROUPBYとDESCを使用