我正在尝试编写一个mysql查询来选择至少两个或多个相同的用户订阅。这是查询:
SELECT a.* FROM `subscription` a, user b WHERE b.id=a.user_id and
count(a.user_id) > 1 group by a.id
谁能告诉我我做错了什么?
答案 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
;