Я пытаюсь выбрать предметы от ассоциативной таблицы, которые удовлетворяют двум или более значениям того же поля, звучит с толку, позвольте мне объяснить.
+-----------------------+
| item_id | category_id |
+-----------------------+
| 1 | 200 |
| 1 | 201 |
| 1 | 202 |
| 2 | 201 |
| 2 | 202 |
| 3 | 202 |
| 3 | 203 |
| 4 | 201 |
| 4 | 207 |
+-----------------------+
В таблице я хочу выбрать только элементы, которые находятся в категориях, которые я пропускаю. Так, например, если я передаю категорию ID-ID 201 и 202, я бы хотел только предметы, которые находятся в обеих категориях (у них могут быть другие категории, но должны быть как минимум категориям, которые я запрашиваю), поэтому в этом случае в этом случае Я бы хотел, чтобы предметы 1 и 2 только поскольку они являются единственными, которые находятся в категориях 201 и 202.
Мой первоначальный оператор 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 идентификаторов категории.
Спасибо за вашу помощь.