- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同一テーブルの同一フィールドで複数条件 and 指定)
同一テーブルの同一フィールドで複数条件 and 指定
このQ&Aのポイント
- テーブルA、テーブルB、テーブルCの関連付けについて説明します。
- アイテムAとアイテムBを持っているメンバーを検索する際、AND条件による絞り込みがうまくいかない場合の解決法はありますか?
- OR条件を使うと検索できるが、AND条件での検索がうまくいかない場合の解決法についてアドバイスをお願いします。
- みんなの回答 (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が取れるので、 後は副問い合わせとかで引っ付けてください。 (^^ゞ
その他の回答 (1)
- taka451213
- ベストアンサー率47% (436/922)
回答No.1
こんにちは。 ご質問の意図が・・・よくわかりません。 一番最後に掲載されているSQLは変じゃないですか? ORでいいかと思うのですが、なぜANDなんでしょう??? (^^ゞ
質問者
補足
なぜANDなのかは、どちらともを含む検索をさせたいのですが、この構文を投げると「Empty set」となる。 ということです。 (つまり、この構文はおかしいということですね)
お礼
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マニュアルを見ても分かりづらいので・・・ 周りにスペシャリストがいないので助かりました。
補足
質問文が分かりづらいようでした。すいません。 Mysql のバージョンが 4.0.21 の為副問い合わせが使えません。 たしか 4.1 からでしたよね。 ベータ版なのであえて避けて正式版の方を使っています。 そうなるとやっぱりクエリを分けなくてはいけないのですか? 一回で出るに越したことはありませんが。 (というか早いほうがいいのですが) テストして検討をしてみます。