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

qq2729877005 · July 25, 2017 · Last by qq2729877005 replied at July 27, 2017 · 1468 hits

情况:

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

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

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

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

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

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

Reply to nowherekai

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

这还有的治疗吗?

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

Reply to zouyu

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

qq2729877005 closed this topic. 29 Jun 14:32
You need to Sign in before reply, if you don't have an account, please Sign up first.