効率の良い検索方法が分かりません。
タイトルではうまく説明できなかったのですが、やりたいことは以下のようなことです。
まず、以下のような構成のテーブルが3つあります。
■table1
aid, a_title
1 , あああ
2 , いいい
3 , ううう
4 , えええ
■table2
bid, b_title
1 , xxxx
2 , yyyy
3 , zzzz
■table3 (table1と、table2の組み合わせ)
aid, bid
1 , 1
1 , 2
2 , 2
2 , 3
3 , 2
3 , 3
4 , 1
そして、ここから、
table1の、aid=1 のデータと、aid=1が持つ、table2の、bid=1,2 といったデータを調べたり、
table2の、bid=2 のデータと、bid=2が持つ、table1の、aid=1,2,3 といったデータを調べたいと思ってます。
これを、MySQL内で効率よく調べる方法が分かりません。
PHPとMySQLでシステムを組んでいるのですが、一度MySQL側で、
SELECT * FROM `table1`
として、それをPHP側のforループで、各aid毎に、
SELECT * FROM `table2`,`table3` WHERE table2.bid = table3.bid AND table3.aid = $aid
等とするしかないでしょうか?
あとは、テーブルを3つ使わずに、table1に、bid_list のような列を作って、そこに、"1,2"等というふうに、どのbidと関係するのかをコンマ区切りでのストリングで書いておいて、PHP側で配列にするというのも考えたのですが、この方法だと、bid=xxx を含む、table1のデータを引き出すのが困難になりそうなので、辞めようと思っています。
MySQLのバージョンは、3.23です。