2012-08-17 54 views
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的值?

谢谢

回答

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 
+0

非常好的工作,谢谢! :) – Jordan 2012-08-17 01:59:07

+0

不客气@约旦 – 2012-08-17 02:00:28