我通过以下方式进行这种类型的查询:
SELECT COUNT(DISTINCT t1.userid) AS user_count
FROM TRANSACTIONS t1
JOIN TRANSACTIONS t2 USING (userid)
WHERE t1.product_id = 'prod1'
AND t2.product_id = 'prod2';
@najmeddine显示的GROUPBY
解决方案还会产生您想要的答案,但在MysqL上的效果不佳。MysqL很难优化查询。GROUP BY
SELECT userid
FROM TRANSACTIONS
WHERE product_id in ('prod1', 'prod2')
GROUP BY userid
HAVING COUNT(DISTINCT product_id) = 2