こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

結合SQLに関して

結合SQLに関して

ある3つのテーブルが存在し、TABLE1の情報を核として、TABLE2,TABLE3と
結合させて情報を取得しようと考えています。

TABLE1とTABLE2だけであれば LEFT OUTER JOIN等を駆使すれば、TABLE1を核として
全件表示可能かと思いますが、TABLE3も含めて結果のような形にしたい場合は、
どのようにSQLを記述すれば良いでしょうか。。。。

初歩的な質問で申し訳ありませんが、教えて下さい。

TABLE1

NO
1
2
3


TABLE2

NO,BUSYO_CODE
1,123
2,123
3,456

TABLE3

BUSYO_CODE,BUSYO_NAME

123,総務
456,経理


結果

NO,BUSYO_CODE,BUSYO_NAME
1,123,総務
2,123,総務
3,456,経理

よろしくお願いします。

投稿日時 - 2010-07-13 18:24:09

QNo.6035882

すぐに回答ほしいです

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

おそらくこういうことをやりたいのではないですか?

SELECT A.NO, B.BUSYO_CODE, C.BUSYO_NAME
FROM TABLE1 A
LEFT JOIN TABLE2 B
ON(A.NO = B.NO)
LEFT JOIN TABLE3 C
ON(B.BUSYO_CODE = C.BUSYO_CODE)

これなら部署コードや部署名が無い場合はNULLで表示されますから・・・

投稿日時 - 2010-07-14 17:00:54

このQ&Aは役に立ちましたか?

10人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

こんにちは。

>LEFT OUTER JOIN等を駆使すれば
が、よくわからない(この場合、外部結合は不要なので)のですが・・・、

単純に結果を得るならば、

SELECT TABLE1.NO, TABLE2.BUSYO_CODE, TABLE3.BUSYO_NAME
FROM TABLE1
INNER JOIN TABLE2
ON(TABLE1.NO = TABLE2.NO)
INNER JOIN TABLE3
ON(TABLE1.BUSYO_CODE = TABLE2.BUSYO_CODE)

になると思いますが・・・。

投稿日時 - 2010-07-14 13:55:18

あなたにオススメの質問