首页 > 解决方案 > 查询通过多个值获取行

问题描述

例如,我有这样的表:

id_product id_feature_value
1 60
2 60
1 40
2 10

我想获得不同的 id_products,其中 id_feature_value = 60 和 id_feature_value = 40 这只是一个例子,因为我需要按更多的 feature_values 过滤。

标签: mysqlsqlaggregate-functionshaving-clause

解决方案


如果您想要具有这两种功能的产品,您可以使用group byand having

select id_product
from mytable
where id_feature_value in (40, 60)
group by id_product
having count(*) = 2

这假设没有重复。否则,您需要count(distinct id_feature_value) = 2.

您可以轻松扩展它以处理每个产品的更多功能:您只需要扩展in子句,并相应地修改子句中的文字编号having


推荐阅读