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

Posted

技术标签:

【中文标题】MySQL Select 语句 - 两个表,按其他表的计数对一个表进行排序【英文标题】:MySQL Select Statement - Two Tables, Sort One Table by Count of Other Table 【发布时间】:2009-11-12 03:15:32 【问题描述】:

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

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

我有两张桌子。

条目:ID、标题、帖子

投票:ID、EntryID、结果

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

【问题讨论】:

【参考方案1】:

您想通过条目项进行连接和分组,然后使用 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

【讨论】:

以上是关于MySQL Select 语句 - 两个表,按其他表的计数对一个表进行排序的主要内容,如果未能解决你的问题,请参考以下文章

MySQL语法------11-----子查询

mysql 三表联合查询

mysql update与select结合修改表数据

MySQL------ 子查询

MySQL------ 子查询

MySQL 性能优化:按日期时间字段排序