我正在尝试从满足同一字段的两个或多个值的关联表中选择项目,这听起来令人困惑,让我解释一下。
+-----------------------+
| 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,我只想要两个类别中的项目(它们可以有其他类别,但至少需要在我查询的类别中),所以在这种情况下,我只想要项目 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 个类别 ID。
感谢您的帮助。