MySQL 错误代码:#1111 - 组函数的使用无效

Dan*_*yal 5 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
Run Code Online (Sandbox Code Playgroud)

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

Har*_*shi 5

您应该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
Run Code Online (Sandbox Code Playgroud)

此外,使用 ANSI 语法Join如下:

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
;
Run Code Online (Sandbox Code Playgroud)