同じフィールドの 2 つ以上の値を満たす項目を連想テーブルから選択しようとしていますが、わかりにくいと思います。説明させてください。
+-----------------------+
| item_id | category_id |
+-----------------------+
| 1 | 200 |
| 1 | 201 |
| 1 | 202 |
| 2 | 201 |
| 2 | 202 |
| 3 | 202 |
| 3 | 203 |
| 4 | 201 |
| 4 | 207 |
+-----------------------+
テーブルでは、合格したカテゴリにあるアイテムのみを選択できるようにしたいと考えています。たとえば、201 と 202 のカテゴリ ID を渡すと、両方のカテゴリに含まれるアイテムのみが必要になります (他のカテゴリを持つこともできますが、少なくともクエリ対象のカテゴリに含まれている必要があります)。カテゴリ 201 と 202 にあるのはアイテム 1 と 2 だけなので、アイテム 1 と 2 のみが必要です。
私の最初のSQLステートメントは次のようなものでした
SELECT * FROM item_category WHERE category_id = 201 AND category_id = 202;
しかし、明らかにそれはうまくいきません。
SELECT * FROM item_category WHERE category_id = 201 OR category_id = 202;
上記のクエリも、項目 4 と 3 も返すため機能しません。
では、少なくとも両方のカテゴリに含まれる必要があるアイテムのみを選択するにはどうすればよいでしょうか?
2 つ以上のカテゴリ ID を渡す可能性があることに注意してください。
ご協力ありがとうございました。