0

我无法想象在这里使用什么 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 查询吗?谢谢!

4

1 回答 1

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
于 2013-10-14T17:05:34.737 回答