- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:他テーブルで一致する列から名称を取得したい(SQL文))
他テーブルで一致する列から名称を取得する方法(SQL文)
このQ&Aのポイント
- SQL文の作成方法が分からず困っています。他のテーブルで一致する列から名称を取得する方法を教えてください。
- テーブルAとテーブルBでキー番号が一致し、テーブルAの項目NoでテーブルBの項目No1~3のどれかと一致した場合、項目名称を取得する方法を教えてください。
- 出力する項目は項目Noと項目名称の組み合わせで、項目No1~3に値が存在しない場合は名称を空白で出力する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
項目No1~3それぞれについてキー番号内でユニークになるように登録されているならば、 以下の方法でいいでしょう。 SELECT a.キー番号, a.項目No, CASE 項目No WHEN b.項目No1 THEN b.項目No1名称 WHEN b.項目No2 THEN b.項目No2名称 WHEN b.項目No3 THEN b.項目No3名称 END FROM テーブルA a LEFT OUTER JOIN テーブルB b ON a.キー番号=b.キー番号 AND a.項目No IN (b.項目No1,b.項目No2,b.項目No3) 上記を満たさないならば、別の方法が必要です。 SELECT a.キー番号, a.項目No, b.項目名称 FROM テーブルA a LEFT OUTER JOIN (SELECT キー番号,項目No1 項目No,項目No1名称 項目名称 FROM テーブルB UNION SELECT キー番号,項目No2 項目No,項目No2名称 項目名称 FROM テーブルB UNION SELECT キー番号,項目No3 項目No,項目No3名称 項目名称 FROM テーブルB) b ON a.キー番号=b.キー番号 AND a.項目No=b.項目No
お礼
解決しました。 ありがとうございます。