[英]MySQL: Select items that belong to all listed categories
(MySQL)请帮助选择所有类别中的所有项目。
Structure: item_category (item_id, category_id)
1 1
1 2
1 3
2 1
2 2
该查询:
SELECT item_id FROM item_category WHERE category_id IN (1,2,3)
选择属于类别1 或 2 或 3的所有商品ID(返回ID 1、2)。 我应该如何选择存在于类别1 和 2 和 3中的项目(仅返回ID 1)?
要获取具有所有类别的商品,请使用
SELECT item_id
FROM item_category
group by item_id
having count(distinct category_id) = (select count(distinct category_id)
from item_category)
或者,如果您知道总是使用这3个 category_id
SELECT item_id
FROM item_category
group by item_id
having count(distinct category_id) = 3
或者如果您的表中有很多category_id
,但只想要至少具有类别1,2,3
项目,则使用
SELECT item_id
FROM item_category
where category_id in (1,2,3)
group by item_id
having count(distinct category_id) = 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.