sql - MySQL Select 语句 - 两个表,根据其他表的计数对一个表进行排序

标签 sql mysql join left-join

所以我为我编写的自定义帖子系统构建了一个投票系统。

我希望能够按“投票最多”、“最喜欢”等排序。

我有两张 table 。

条目:ID、标题、帖子

投票:ID、EntryID、结果

我希望能够查询每个条目的投票表并查看有多少票,然后根据每个表有多少票对条目进行排序。我搞乱了连接等,似乎无法弄清楚。有什么建议吗?

最佳答案

您想按条目项进行联接和分组,然后使用 count 和 sum 等聚合来获取投票数和投票总和:

select e.ID, e.Title, e.Post, count(*) as Votes, sum(Result) as Result
from Entry e
inner join Vote v on v.EntryId = e.Id
group by e.ID, e.Title, e.Post
order by 4 desc

关于sql - MySQL Select 语句 - 两个表,根据其他表的计数对一个表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1719661/

相关文章:

mysql - 更新时参数索引超出范围(1 > 参数数量,为 0)

mysql - Codeigniter 模型,根据 table1 从 2 个表中获取值。如果在 table2 上找不到值,则值返回 null

mysql - MySql中JOIN的两种方式

c# - C#中的选择语句

mysql - 如何组合 SELECT 查询和 COUNT(*) 查询?

mysql - 如何将可重复的分区作为一个又一个的新分区?

php - 如何在插入新行时不将表的 id 设置为 0

sql - UPDATE SQL 查询中的聚合

mysql - 每行具有可变列数的 SELECT 查询

php - PDO fatal error - 在非对象上调用成员函数 prepare()