[英]MySQL Count query with Group By not returning anything
我试图理解为什么MySQL中的这个查询根本不返回任何结果,而我认为它应该返回一行,其中0作为列值
select count(ps.id) as totalcount
from tblpresi ps
inner join users_staging.tbluser u on u.id = ps.userid
where ps.id = 3678
group by ps.id
没有“分组依据”的相同查询按预期工作。
有任何想法吗?
不,它不会返回,因为您的查询根本不返回结果(可能没有ps.id = 3678,或者您的内部联接排除了结果集中的每一行)。
如果您将查询更改为:
select count(1) as totalcount
from tblpresi ps
inner join users_staging.tbluser u on u.id = ps.userid
where ps.id = 3678
group by ps.id
你会得到一行0
。
请记住, 如果您的ps.id
在结果集中是唯一的(我不知道您所拥有的inner join
ps.id
是否将返回具有相同ps.id
多个行),则ps.id
group by
子句。
既然你说你期望1行零计数,我假设没有ps.id为3678。
如果在空结果集上进行分组,则不能有任何组。 group by不“知道”where子句,它只查看结果集。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.