新手问题 关于排序查询的问题,请高手指教?

qq2729877005 · 2017年07月25日 · 最后由 qq2729877005 回复于 2017年07月27日 · 1459 次阅读

情况:

简化后的描述:有一个 topics 表和一个 votes 表,两者之间是一对多关系,topics 表中有一个字段:title,votes 表中有一个外键字段 topic_id,现在要求按 topics 表中的每行数据中的 votes 总数从大到小取出 topics 表中的全部数据,何解?、

看了下 API,发现 order 方法可以,但它只能按照表中所拥有的字段排序,而 group 方法可以按照 user_id 字段分组查出 topics 表中的每行数据中的 votes 总数,但好像又不能排序查找出的结果。

难道非得要写个排序算法?

可以加 counter_cache,这样就有一个字段 votes_count 了

MaiZardAyumi 回复

谢谢,又学到了一点新知识

Topic.joins(:votes).group("topics.id").select("topics.*, count(votes.id) as vote_count").order("vote_count desc")

nowherekai 回复

虽然看不懂😂 ,但结果确实没错😭

这还有的治疗吗?

qq2729877005 回复

用 rails 写的链接查询 看看 sql 语句就明白了

zouyu 回复

简单的能看懂,复杂的就看不懂了

qq2729877005 关闭了讨论。 06月29日 14:32
需要 登录 后方可回复, 如果你还没有账号请 注册新账号