mysql - 选择与值组合关联的 ID

标签 mysql

我有一个 MySQL 表,用于存储产品参数,例如:

productId | parameterValue
--------------------------
1         | 1
1         | 2
1         | 3
2         | 1
3         | 3

我需要的是选择与parameterValues 1 AND 2 AND 3关联的不同productId。因此,我不能简单地使用 WHERE parameterValue IN (1,2,3),因为它会返回与任何这些值关联的 ProductId。

查询此问题最有效的方法是什么?该表有数十万行。

最佳答案

您可以通过过滤所需参数值的行来实现这一点,然后计算每个产品有多少个,并使用 HAVING 子句仅获取具有三个的产品(在您的情况下) )其中:

select  productId
from    yourTable
where   parameterValue in (1, 2, 3)
group by productId
having   count(distinct parameterValue) = 3

关于mysql - 选择与值组合关联的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44024292/

相关文章:

mysql - 根据另一个列值对列求和

mysql - 以下哪个查询被优化/首选

php - 如何加入帖子元和分类表wpdb mysql

php - 无法找出 mySQL 语法错误的来源

java - JPA,如何将Map中实体类型的值添加到主键?

mysql查询日期时间字段的准确性

python - 由于字符串值之一的 "\",mysql 查询失败

mysql - 使用 INNER JOIN 排除 MYSQL 查询结果

php - 通过多个条件查找表中的重复记录

php - 在mysql中插入和resort数据