我有一个查询,我要选择已提交每个应用程序的用户数量。
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
但它没有用,它说这是一个无效的列。如何只选择 people 小于 50 的值?
谢谢
最佳答案
使用 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
关于mysql - 在 where 语句中使用由 count 设置的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11998841/