ID MySQL Выбрать идентификаторы, которые происходят на разных строках с несколькими конкретными значениями для столбца

Я пытаюсь выбрать предметы от ассоциативной таблицы, которые удовлетворяют двум или более значениям того же поля, звучит с толку, позвольте мне объяснить.

+-----------------------+
| 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 идентификаторов категории.

Спасибо за вашу помощь.

9
задан Bill Karwin 9 September 2013 в 16:36
поделиться