MySQL-如何通过投票总数进行连接和排序?
我有这样的模式(只是试验,所以如果你有改进建议,我洗耳恭听): 我正试图把数据作为排行榜,以最多的票数排列结果。我该怎么做?我可以做左连接部分,但是查询的求和和和排序部分让我感到困惑MySQL-如何通过投票总数进行连接和排序?,mysql,sql,Mysql,Sql,我有这样的模式(只是试验,所以如果你有改进建议,我洗耳恭听): 我正试图把数据作为排行榜,以最多的票数排列结果。我该怎么做?我可以做左连接部分,但是查询的求和和和排序部分让我感到困惑 谢谢大家! 因为你不知道如何求和,我听说过这本书的好处,自学SQL是10分钟。就您的模式而言,人名可能不应该出现在竞赛条目表中。您应该能够从另一个表中使用member_id字段获取它。此外,竞赛项目中guid字段的用途是什么?@DanBracuk guid用于避免重复项目。我正在尝试不将其键入成员id以获得唯一性,
谢谢大家! 因为你不知道如何求和,我听说过这本书的好处,自学SQL是10分钟。就您的模式而言,人名可能不应该出现在竞赛条目表中。您应该能够从另一个表中使用member_id字段获取它。此外,竞赛项目中guid字段的用途是什么?@DanBracuk guid用于避免重复项目。我正在尝试不将其键入成员id以获得唯一性,这样我就不必强迫人们注册。在
contest\u voces
中,每一票会有一行,还是每contest\u entry\u id
或user\u id
中增加vote
列?我想每一票只有一行。然后呢您不需要投票
列。对于给定的contest\u条目\u id
select e.entry_id, sum(v.vote) as votes
from contest_entries e
left join contest_votes v on e.entry_id = v.contest_entry_id
group by e.member_id
order by votes desc
select e.entry_id, sum(v.vote) as votes
from contest_entries e
left join contest_votes v on e.entry_id = v.contest_entry_id
group by e.member_id
order by votes desc
SELECT entry_id
FROM contest_entries
LEFT OUTER JOIN contest_votes ON entry_id = contest_entry_id
GROUP BY entry_id
ORDER BY SUM(vote) DESC