Tôi không chắc tại sao bạn lại đưa comment_id vào danh sách CHỌN của mình nếu bạn chỉ muốn người dùng và thứ hạng của họ. Bạn có muốn chỉ xếp hạng của họ trên nhận xét cụ thể đó không? Tôi sẽ đưa ra một giải pháp cho bây giờ giả sử bạn chỉ muốn có một danh sách thành viên đầy đủ với thứ hạng:
SELECT
M.member_id,
M.user_id,
M.avatar,
COALESCE(SUM(C.vote_value), 0) AS vote_value_sum,
COALESCE(SUM(C.best), 0) AS best_sum,
COALESCE(SUM(C.vote_value), 0) + SUM(C.best) * 10 AS total_value
FROM
Members M
LEFT OUTER JOIN Comments C ON
C.author_id = M.member_id
GROUP BY
M.member_id
ORDER BY
total_value DESC
LIMIT 0, 20
(điều này giả định rằng vote_value và tốt nhất là KHÔNG phải cột NULL hoặc MySQL sẽ bỏ qua những cột đó khi tính toán giá trị SUM - Tôi tin rằng điều đó đúng, nhưng tôi chưa kiểm tra điều đó)