MySQLについて


table1
id,自分,都道府県名
table2
id,親,都道府県名
table3
id,子,都道府県名
table4
id,兄弟,都道府県名

上記のような4つのテーブルがあるとし、「xxx県」で検索した際に、
自分、親、子、兄弟の何れかが指定した「xxx県」の場合に
table1のデータを全て取得するには、どのようにSQLを書けば良いでしょうか?

MySQL4.xです。

お願いします。

回答の条件
  • 1人1回まで
  • 登録:2008/01/17 22:52:12
  • 終了:2008/01/24 22:55:02

回答(1件)

id:AOFG No.1

AOFG回答回数2ベストアンサー獲得回数02008/01/18 00:20:40

ポイント60pt

SELECT table1.*

FROM table1

LEFT JOIN table2 ON table2.id=table1.id

LEFT JOIN table3 ON table3.id=table1.id

LEFT JOIN table4 ON table4.id=table1.id

WHERE table1.都道府県 = 'xxx県'

OR table2.都道府県 = 'xxx県'

OR table3.都道府県 = 'xxx県'

OR table4.都道府県 = 'xxx県'

というのはどうでしょうか。

id:worldtravel

ありがとうございます。

ちなみに該当件数を取得する場合は下記のコードで良いのでしょうか。

SELECT count(table1.*)

FROM table1

LEFT JOIN table2 ON table2.id=table1.id

LEFT JOIN table3 ON table3.id=table1.id

LEFT JOIN table4 ON table4.id=table1.id

WHERE table1.都道府県 = 'xxx県'

OR table2.都道府県 = 'xxx県'

OR table3.都道府県 = 'xxx県'

OR table4.都道府県 = 'xxx県'

2008/01/18 07:45:15
  • id:Mook
    興味がある質問でしたが、回答ができない状態なのでコメントで失礼します。

    いずれにせよ、条件をまずはっきりしないとできないのですけれど、
    各テーブルとも複数レコードが登録されているとしたら、
    本人と親子、兄弟の関連付はどのようになっているのでしょうか。
  • id:worldtravel
    ありがとうございます。
    家族毎にidが同じになっております。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません