1

我有一个查询,我在其中选择已提交给每个应用程序的用户数。

SELECT c.*, count(p.id) people
FROM users p
LEFT JOIN apps c
ON c.id = p.app
WHERE c.status='1'
GROUP BY p.app
ORDER BY c.id DESC

但是,我只想选择少于 50 人的那些。我怎样才能做到这一点?

我试过WHERE c.status='1' AND people < 50了,但没有用,它说这是一个无效的列。如何只选择人数小于 50 的值?

谢谢

4

1 回答 1

3

使用HAVING. 它的行为类似WHERE,但它的用途是用于聚合列。

SELECT c.*, count(p.id) people
FROM users p
LEFT JOIN apps c
ON c.id = p.app
WHERE c.status='1'
GROUP BY p.app
HAVING count(p.id) < 50
ORDER BY c.id DESC
于 2012-08-17T01:54:14.483 回答