• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同一テーブルの同一フィールドで複数条件 and 指定)

同一テーブルの同一フィールドで複数条件 and 指定

このQ&Aのポイント
  • テーブルA、テーブルB、テーブルCの関連付けについて説明します。
  • アイテムAとアイテムBを持っているメンバーを検索する際、AND条件による絞り込みがうまくいかない場合の解決法はありますか?
  • OR条件を使うと検索できるが、AND条件での検索がうまくいかない場合の解決法についてアドバイスをお願いします。

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

  • ベストアンサー
回答No.2

こんにちは。 ごめんなさい、意味がわかりました・・・。 >>アイテムA と アイテムBを持っているメンバー 両方持ってるメンバーだけという事ですね? まずはitem_checkのテーブルからmember_idだけを抽出します。 SELECT member_id, count(member_id) FROM item_check WHERE item_id = 'A' OR item_id = 'B' GROUP BY member_id HAVING count(member_id) > 1 --ここの数値は条件のアイテム数と合わせてね。 これでとりあえずmember_idが取れるので、 後は副問い合わせとかで引っ付けてください。 (^^ゞ

moon_night
質問者

お礼

SELECT * FROM item_check,member,item WHERE member.id = member_id and item.id = item_check.item_id and (item_id = '2' OR item_id = '3') GROUP BY member.id HAVING count(member_id) >= 2 テストした結果、これで一発で出るようです。 ありがとうございました。 まだ知らないことってたくさんあるんですね。 MysqlのWEBマニュアルを見ても分かりづらいので・・・ 周りにスペシャリストがいないので助かりました。

moon_night
質問者

補足

質問文が分かりづらいようでした。すいません。 Mysql のバージョンが 4.0.21 の為副問い合わせが使えません。 たしか 4.1 からでしたよね。 ベータ版なのであえて避けて正式版の方を使っています。 そうなるとやっぱりクエリを分けなくてはいけないのですか? 一回で出るに越したことはありませんが。 (というか早いほうがいいのですが) テストして検討をしてみます。

その他の回答 (1)

回答No.1

こんにちは。 ご質問の意図が・・・よくわかりません。 一番最後に掲載されているSQLは変じゃないですか? ORでいいかと思うのですが、なぜANDなんでしょう??? (^^ゞ

moon_night
質問者

補足

なぜANDなのかは、どちらともを含む検索をさせたいのですが、この構文を投げると「Empty set」となる。 ということです。 (つまり、この構文はおかしいということですね)