【发布时间】:2023-03-22 09:16:01
【问题描述】:
如果产品有两个或多个类别,我在选择 Product 类型的实体时遇到问题。
我有以下表格:
product
============
product_id (PK)
name
category
============
category_id (PK)
name
及其关联:
product_category
============
product_id (PFK)
category_id (PFK)
现在的问题是,我无法使用 product_category 表根据多个 category.category_id 选择产品。
例如:我要选择所有类别 1、2 的产品,这意味着表 product_category 中有两次出现。
要选择具有单一类别的所有产品,可以使用以下选择
SELECT p.*
FROM product p
JOIN product_category pc using(product_id)
WHERE category_id = 1;
但是如何选择产品的 category_id 为 1 和 2? 查询应该只返回两个类别相关的产品。
WHERE category_id = 1 and category_id = 2;
这显然是不可能的匹配,但我该如何解决这个问题?这可能吗?
【问题讨论】: