我无法想象在这里使用什么MySQL查询。这是表格:
users
-----
userid name
posts
-----
postid user_id message
ratings
-----
rateid user_id post_id score
我希望能够根据用户提交的所有分数总数,选择评分最高的TOP 10帖子。
我正在使用的查询是这样的,但它没有列出没有评级的项目:
SELECT *,IFNULL(SUM(score),0) score
FROM posts
LEFT JOIN ratings ON postid=post_id
LEFT JOIN users ON userid=posts.user_id
ORDER BY score DESC
LIMIT 10
但我仍然希望能够列出没有评级的帖子。你能帮我写一下SQL查询吗?谢谢!
答案 0 :(得分:1)
SELECT post_id,coalesce(score, 0) score
FROM posts
LEFT JOIN ratings ON postid=post_id
LEFT JOIN users ON userid=posts.user_id
GROUP BY post_id
ORDER BY coalesce(score, 0) DESC
LIMIT 10