0

ここで使用する MySQL クエリを想像できません。ここに表があります:

users
-----
userid  name

posts
-----
postid  user_id message

ratings
-----
rateid  user_id post_id score

ユーザーが送信したすべてのスコアの合計数に基づいて、最も評価の高い上位 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 に答える