我有一张桌子Responses
和一张桌子Votes
。该Votes
表有一列vote_value
可以是1
或-1
取决于人们是否对给定的响应投赞成票或反对票。我想知道如何根据投票的总和对回复进行排序。
进行连接并简单地按SUM(vote.vote_value) as score
(降序)排序的问题是某些响应没有投票,因此score
-1 的响应将高于没有投票的响应(得分为0 真的)。
如果没有办法用 SQL 做到这一点,我想我可以自己在应用程序代码中进行排序。
当 SUM 返回 NULL 时,使用COALESCE选择一个值:
COALESCE(SUM(vote.vote_value), 0) AS score