MySQL返回多行,包含多个连接和多个总和

时间:2013-10-07 23:29:29

标签: mysql join sum rows

感谢所有让我这么远的人!以下工作,但我无法弄清楚如何返回超过1行,包括所有当前列名称。我理解语句当前的编写方式,只支持返回一行。但是,我尝试了几个子查询示例,但我的总和列似乎总是被排除在结果之外。任何帮助都会很棒,谢谢。

    SELECT 
club.id,
club.name,
club.status,
users.firstname,
users.lastname,
users.rights,
 SUM( job.status > '0' ) AS total,
 SUM( job.status = '1' ) AS incomplete,
 SUM( job.status = '2' ) AS pending,
 SUM( job.status = '3' ) AS live,
 SUM( job.status = '4' ) AS closed 
FROM club 
LEFT JOIN surveys 
ON job.club_id = club.id 
LEFT JOIN users 
ON users.id = job.users_id 
WHERE job.status > 0

1 个答案:

答案 0 :(得分:0)

我不完全确定你的目的是什么,但这是一个基本问题:你没有GROUP BY语句。当您使用像SUM这样的分组函数时,它告诉mysql您想要将结果组合在一起。如果省略GROUP BY,它会将所有内容分组为一行。如果你想每个用户有一行(我假设是这样,因为你选择了他们的名字),你应该说

GROUP BY users.id

在查询结束时。

如果这不能为您提供所需的结果,请使用虚假数据发布您正在寻找的结果示例,我可以给您更详细的答案。