• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データベースの基礎かもしれませんが・・)

SQLの表結合についての問い合わせ

このQ&Aのポイント
  • データベースの基礎かもしれませんが、SQLの表結合について質問があります。
  • 2つのテーブルを結合する方法、特に条件に応じて結合する方法について知りたいです。
  • 表Aと表Bの結合において、KUBUNの値によって結合条件が異なる場合、最終結果をどのように取得することができるのか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

表AのそれぞれのID & RENBANについて、3つのJOIN式に該当する表Bのデータがそれぞれ「2件以上ない」ことが保証されているテーブル構造であるなら、以下のクエリで可能です。 SELECT a.ID, a.RENBAN, MAX(CASE WHEN b.KUBUN=1 AND b.NO=a.NO THEN b.SHOUSAI_NO END) "NO(SHOUSAI_NO)", MAX(CASE WHEN b.KUBUN=2 AND b.NO=a.NO1 THEN b.SHOUSAI_NO END) "NO1(SHOUSAI_NO)", MAX(CASE WHEN b.KUBUN=2 AND b.NO=a.NO2 THEN b.SHOUSAI_NO END) "NO2(SHOUSAI_NO)" FROM 表A a INNER JOIN 表B b ON b.ID=a.ID and ((b.KUBUN=1 AND b.NO=a.NO) OR (b.KUBUN=2 AND b.NO=a.NO1) OR (b.KUBUN=2 AND b.NO=a.NO2)) GROUP BY a.ID,a.RENBAN ORDER BY 1,2 このように表示する意味はわかりませんが、可能は可能です。

関連するQ&A