同一テーブルの同一フィールドで複数条件 and 指定
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1069795
で質問した続きです。
うっかり詳細のテストをしてないのに締め切ってしまいました。
テーブルA 「member」
| id | name |
テーブルB 「item」
| id | name |
テーブルC 「item_check」
| member_id | item_id |
というテーブルがあります。
テーブルAはメンバーで一人一つのデータが入っています。
テーブルBはメンバーが持つであろうアイテムのマスタです。
テーブルCはメンバーがどのアイテムを持っているかを示しているテーブルです。
テーブルCに関しては同じメンバーでも複数のアイテムを持つこともあるので複数のデータが入る場合もあります。
で、やろうとしているのは、
「アイテムA と アイテムBを持っているメンバー」
という検索を行いたいのです。
select distinct a.id, a.name from member as a,item as b,item_check as c
where a.id = c.member_id and c.item_id = b.id
and (c.item_id = '2' or c.item_id = '3')
select member.*,item.name from member, item, item_check
where member.id=item_check.member_id and item.id=item_check.item_id and item.id in (1, 3) group by member.id
で or 検索はできますが、
and 検索をすると 「Empty set」となってしまいます。
select distinct a.id, a.name from member as a,item as b,item_check as c
where a.id = c.member_id and c.item_id = b.id
and (c.item_id = '2' and c.item_id = '3')
なにかいい手はないでしょうか。