0

感谢所有让我走到这一步的人!以下工作,但我无法弄清楚如何返回超过 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
4

1 回答 1

0

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

GROUP BY users.id

在查询结束时。

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

于 2013-10-08T01:10:11.317 回答