Count()使用Where子句和Left Join

时间:2009-09-08 19:20:48

标签: mysql join count where-clause

我的查询类似于以下内容:

  

选择   users.id FROM users LEFT JOIN sales ON installations.customer = users.id

我想说的是“WHERE count(sales.id)> 4” - 意味着如果用户的销售额超过4个。我不确定我是否会以错误的方式解决这个问题

3 个答案:

答案 0 :(得分:4)

select
    users.id

from users

join sales on /* your join condition here */

group by users.id

having count(sales.id) > 4

这将按用户对所有销售进行分组,然后仅返回sales表中包含四个以上记录的销售。

我没有从上面复制你的连接条件,因为它似乎没有多大意义,因为它引用了你的查询中不在任何地方的表。

答案 1 :(得分:0)

我想你想要类似的东西

select users.id, count(sales.id)
from users
LEFT JOIN sales ON installations.customer = users.id
group by users.id
having count(Sales.id) > 5

答案 2 :(得分:0)

您需要使用“group by”和“having”子句。

尝试

SELECT users.id FROM users LEFT JOIN sales ON installations.customer = users.id GROUP BY users.id HAVING count(sale.id) > 4

请点击此处查看更多GROUPBY on W2C