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

解決済みの質問

JOINのJOIN?

こんにちは。
本のデータベースを作っています。
ソート部分を作っています。
本の一覧から大分類でソートさせたいのですが、階層的なテーブルのJOINする方法が分かりません。
テーブルは下記のようになっています。
----------------------------------------------------------------
DAI_BUNRUI_TBL(大分類)
+-------+--------+
| D_ID |NAME|
+====+====+
|  1 |D_N1|
|  2 |D_N2|
+-------+-------+

CHU_BUNRUI_TBL(中分類)
+------+--------+--------+
| C_ID | D_ID |NAME|
+====+====+====+
|  1 |  1 |C_N1|
|  2 |  1 |C_N2|
|  3 |  2 |C_N3|
|  4 |  2 |C_N4|
|  5 |  2 |C_N5|
+-------+--------+-------+

HON_TBL(本のテーブル)
+-------+--------+--------+
| H_ID | C_ID | NAME|
+====+====+=====+
|  1 |  1 | Foo1|
|  2 |  1 | Foo2|
|  3 |  2 | Foo3|
|  4 |  2 | Foo4|
|  5 |  2 | Foo5|
+-------+--------+--------+
----------------------------------------------------------------
HON_TBLのC_IDとCHU_BUNRUI_TBLのC_IDをJOINTするには下記のようになると思いますが、

SELECT * FROM HON_TBL JOIN CHU_BUNRUI_TBL ON HON_TBL.C_ID = CHU_BUNRUI_TBL.C_ID ;

さらにCHU_BUNRUI_TBLのD_IDとDAI_BUNRUI_TBLのD_IDを結合するにはどのようにするばよろしいのでしょうか?

投稿日時 - 2017-10-16 13:27:55

QNo.9386460

暇なときに回答ください

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

自分で考えて試していますか?
特に難しい点はなくただ足せば動くと思いますけど。
SELECT * FROM HON_TBL
JOIN CHU_BUNRUI_TBL ON HON_TBL.C_ID = CHU_BUNRUI_TBL.C_ID
JOIN DAI_BUNRUI_TBL ON CHU_BUNRUI_TBL.D_ID = DAI_BUNRUI_TBL.D_ID

ただ私はJOINせずに普通に結合する方が好きですけど。
SELECT *
FROM HON_TBL, CHU_BUNRUI_TBL, DAI_BUNRUI_TBL
WHERE HON_TBL.C_ID = CHU_BUNRUI_TBL.C_ID AND CHU_BUNRUI_TBL.D_ID = DAI_BUNRUI_TBL.D_ID

投稿日時 - 2017-10-16 14:43:23

お礼

早々のレスありがとうございます。
JOINを複数入れていいというのを知りませんでした。
結合もとても参考になります。
助かりました!

投稿日時 - 2017-10-17 13:17:51

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

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

回答(1)