[英]MySQL return multiple rows with multiple joins and multiple sums
感谢所有使我到目前为止的人! 下面的工作原理,但是我不知道如何返回多于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
我不确定您要做什么,但这是一个基本问题:您没有GROUP BY语句。 当您使用SUM之类的分组功能时,它告诉mysql您要将结果分组在一起。 如果您忽略GROUP BY,则会将所有内容分组为一行。 如果您希望每个用户只有一行(我想是这样,因为您正在选择他们的名字),则应该说
GROUP BY users.id
在查询末尾。
如果这样做不能为您带来所需的结果,请提供一个使用虚假数据寻找所需结果的示例,我可以为您提供更详细的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.