繁体   English   中英

MySQL返回具有多个联接和多个求和的多行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM