我的数据库中有两个表

1.故事(id,title,content)

2.Comments(id,story_id,comment)这里的story_idid表中stories的原键。

为了获取特定帖子的评论,我正在使用此查询

SELECT stories.*,COUNT(stories.id) as totalcomment
FROM stories LEFT JOIN comments ON stories.id=comments.story_id  GROUP BY stories.id


问题是即使对于特定帖子没有评论,我也将得到totalcomment值为1,但我将得到count(storie.id)结果为1

最佳答案

您需要计算Comments.story_id并按Comments.story_id分组。

每个故事有多个评论,因此按该stories.id分组时,结果始终为1,因此需要对Comments.story_id进行计数,以便对于每个故事,它可以同时计算所有评论并组成一个小组通过它。

的SQL

SELECT stories.*,COUNT(Comments.story_id) as totalcomment
FROM stories LEFT JOIN comments ON stories.id=comments.story_id  GROUP BY stories.id, Comments.story_id

关于php - 即使没有特定帖子的评论,使用count()获取mysql中帖子的评论总数也总是返回1。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37266801/

10-11 03:31