如何根据拥有的用户数量获得客户数据?

时间:2019-01-16 21:20:25

标签: mysql count subquery having

我想从拥有1个以上用户的所有企业中获取客户数据。

为此,我认为我需要一个子查询来统计1个以上的用户,然后需要一个外部查询来给我他们的电子邮件。

我在WHERE和HAVING子句中尝试过子查询

SELECT   u.mail
FROM     users u
WHERE    count IN (
    SELECT count (u.id_business)
    FROM businesses b
    INNER JOIN users u ON b.id = u.id_business
    GROUP BY b.id, u.id_business
    HAVING COUNT (u.id_business) >= 2
)

1 个答案:

答案 0 :(得分:0)

我相信您不需要子查询,所有事情都可以在带有HAVING子句的联合聚合查询中实现,例如:

SELECT u.mail 
FROM users u 
INNER JOIN businesses b on b.id = u.id_business
GROUP BY u.id, u.email
HAVING COUNT (*) >= 2

注意:如果有几个用户可能使用同一封电子邮件,我将users的主键添加到了GROUP BY子句中(我假设pk被称为id):如果emailusers中的唯一字段,则可以将其删除。