これが以前に尋ねられた場合は申し訳ありませんが、何を検索すればよいか本当にわからなかったため、質問のタイトルをどのように表現すればよいかわかりませんでした。
私は、1 つの製品が複数のカテゴリを持つことができ、フロントエンドでユーザーが複数のカテゴリを指定して製品を検索できる、非常に一般的なシステムを構築しています。
次のスキーマとデータがあるとします (まだ画像を投稿できません。申し訳ありませんが、リンクを参照してください)-
テーブル名: product_categories
データ:
製品テーブルは非常に標準的です - ID、名前、金額など.
したがって、製品 1 には 2 つのカテゴリがあります。
ユーザーが検索ページでカテゴリ 2 と 3 を表す 2 つのチェックボックスをオンにした場合、これらのカテゴリの両方を持つ製品のみが返されるようにクエリを実行するにはどうすればよいですか?
2 のカテゴリ ID と 3 のカテゴリ ID を持つ行が 1 つもないため、次のようなものは機能しません。
SELECT * from product_categories where `category_id` = 2 AND `category_id` = 3;
WHERE IN も使用してみましたが、カテゴリ ID 2 と 6 (たとえば) の両方を持つ製品を探していたとしても、これは製品 1 を返します。
これはより大きなクエリの一部ですが、解決策を見つけることができれば、解決策を適用できます。