0

我正在使用此查询来获取按大多数 content_id 排序的结果,问题是即使请求表为空,它仍会从内容表中返回 1 个元素:

select `c`.`id`, `c`.`title`, `c`.`slug`, `c`.`year`, `c`.`category`, `r`.*
, count(*) from requests as r
RIGHT JOIN `content` as c ON `r`.`content_id` = `c`.`id`
group by content_id order by count(*) desc
LIMIT 10

如果请求表中有 5 条记录之类的记录,它会返回 6 条记录。第一条记录不在请求表中。有人能帮助我吗?谢谢

4

2 回答 2

1

尝试使用INNER JOIN而不是RIGHT JOIN

于 2013-03-29T00:40:44.600 回答
0

当您使用聚合函数时,COUNT()您总是会返回一行,因此数据库可以报告该函数的结果,即使它为零。

于 2013-03-29T00:12:16.507 回答