我有一张桌子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