首页 > 解决方案 > 如何只带一个字段重复但另一个字段在一个范围内变化的行?

问题描述

我有一个名为 services 的表,其中包含一个字段“id_client”和一个字段“id_product”。

我需要一个查询来返回使用过某个列表中所有产品的所有客户,例如,所有使用过产品 151、461 和 2047 的客户。我该怎么做?

标签: mysql

解决方案


您可以计算他们在该列表中拥有的独特产品的数量,并确保他们拥有所有产品:

SELECT   id_client
FROM     services
WHERE    id_product IN (151, 461, 2047)
GROUP BY id_client
HAVING   COUNT(DISTINCT id_product) = 3

推荐阅读