電子書籍の厳選無料作品が豊富!

SQLの作成について

以下のようなDBがあるとします。
----------------------
DB1(マスタ)
 区分   フラグ  名称
  A    1    男
  A    2    女
  B    1    車
  B    2    飛行機
  B    3    電車
  C    1    コンビニ
  C    2    スーパー
  C    3    百貨店
  D    1    デスクトップ
  D    2    ノート
----------------------

-----------------------
DB2
 区分1 フラグ1 名称1 ・・・ 区分4 フラグ4 名称4
  A   2           D    1
-----------------------

DB2の区分とフラグから、DB1を参照して
取ってきたDB1の名称をDB2に書き込みたいです。

名称の1つ毎に、SQLを発行し、それぞれ名称を取得するなら
where DB1.区分=DB2.区分 and DB1.フラグ = DB2.フラグ
みたいな感じでそのまま出来ると思いますが、

今は、1つのSQLでDB2の複数の名称を一気に取得したいと考えてます。
どのようなSQLが良いのでしょうか

A 回答 (1件)

こういうことでしょうか。



select
 DB2.区分1,DB2.フラグ1,M1.名称
 ,DB2.区分2,DB2.フラグ2,M2.名称
 ,DB2.区分3,DB2.フラグ3,M3.名称
 ,DB2.区分4,DB2.フラグ4,M4.名称
from
 DB2
  inner join DB1 M1 on M1.区分 = DB2.区分1 and M1.フラグ = DB2.フラグ1
  inner join DB1 M2 on M2.区分 = DB2.区分2 and M2.フラグ = DB2.フラグ2
  inner join DB1 M3 on M3.区分 = DB2.区分3 and M3.フラグ = DB2.フラグ3
  inner join DB1 M4 on M4.区分 = DB2.区分4 and M4.フラグ = DB2.フラグ4;
    • good
    • 0
この回答へのお礼

無事うまく取得する事ができました。
ご回答、どうもありがとうございました。

お礼日時:2010/08/27 14:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!