MySQL错误代码:#1111 - 无效使用组功能

时间:2017-12-06 06:38:20

标签: mysql

我正在尝试编写一个mysql查询来选择至少两个或多个相同的用户订阅。这是查询:

SELECT a.* FROM `subscription` a, user b WHERE b.id=a.user_id and 
    count(a.user_id) > 1 group by a.id

谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:3)

您应该将having与聚合函数一起使用。 Where用于过滤行。 Having用于根据给定条件过滤组。

SELECT a.* FROM `subscription` a, user b WHERE b.id=a.user_id 
 group by a.id
having count(a.user_id) > 1

另外,对Join使用ANSI语法,如下所示:

SELECT a.* 
FROM `subscription` a 
inner join 
user b 
on b.id=a.user_id 
group by a.id
having count(a.user_id) > 1
;