これ何て呼びますか Part2

親テーブルに対して子テーブルが複数あるときの結合方法がわかりません。
テーブル2、3はそれぞれマスタテーブルの値を格納しています。


具体的には4つのテーブルを結合しテーブル1のname項目、テーブル2のtest項目、area_id、pref_idで検索をしたいです。

right joinで結合してみましたが、テーブル3、4でテーブル2のtest_idを2回参照するのでエラーがでてから先に進めない状況です。
他の回答を読んだのですができなかったので質問させてください。

お分かりの方教えてください。
よろしくお願いいたします。


[teble1]
ID | name
1 佐々木
2 鈴木
3 田中


[teble2]
test_id | ID(table1の値) | test
1 1       テスト1
2 1       テスト2
3 2       テスト3


[teble3]
test_id | area_id
1    1
1    4
2    3


[teble4]
test_id | pref_id
1    1
2    2
2    5
3    2

バージョンは4.0.27です。

A 回答 (2件)

right join じゃなくて left join ですよね?



SELECT t1.ID
,t1.name
,t2.test
,t3.area_id
,t4.pref_id
FROM table1 AS t1
LEFT JOIN table2 AS t2 ON t1.ID=t2.ID
LEFT JOIN table3 AS t3 ON t2.test_id=t3.test_id
LEFT JOIN table4 AS t4 ON t2.test_id=t4.test_id
    • good
    • 0
この回答へのお礼

yambejpさん、ありがとうございました。
table2に名前をつけて使わなかったのでエラーがでていました。

どうもありがとうございました。

お礼日時:2007/09/18 18:39

select table1.ID,test,area_id,pref_id form table1


inner join table2 on table1.ID = table2.ID
inner join table3 on table2.test_id = table3.test_id
inner join table4 on table2.test_id = table4.test_id;
適当に書いたので動かなかったらごめんなさい。
値が一意ではないものがあるので、複数のデータがHITすると思います。
    • good
    • 0
この回答へのお礼

moon_nightさんありがとうございました。
おかげさまで出来ました。
ありがとうございました。

お礼日時:2007/09/18 18:38

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

関連するカテゴリからQ&Aを探す


おすすめ情報