我试图理解为什么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
没有“分组依据”的相同查询按预期工作。
有什么想法吗?
答案 0 :(得分:2)
不,它不会返回,因为您的查询根本不返回结果(可能没有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
)您的group by
条款不是必需的。
答案 1 :(得分:0)
既然你说你期望1行零计数,我认为没有ps.id为3678.
如果在空结果集上进行分组,则不能有任何组。 group by不“知道”where子句,它只是查看结果集。