Rails Group、Order 和 Limit 在一张表 Active Records 中
Posted
技术标签:
【中文标题】Rails Group、Order 和 Limit 在一张表 Active Records 中【英文标题】:Rails Group, Order and Limit in one Table Active Records 【发布时间】:2021-11-18 07:16:57 【问题描述】:我对 Rails 还很陌生,并尝试为 GraphQl 实现一个查询,我想通过一个 Active Record 查询从我的表(条目)中获取每个 feed_id 的 10 个最新条目(通过 published_at)。
我的模型如下所示:
class Entry < ApplicationRecord
belongs_to :feed
"some methods"
end
class Feed < ApplicationRecord
has_many :entries, dependent: :destroy
end
我的表格如下所示:
条目表:
id | title | published_at | feed_id | ...... |
---|---|---|---|---|
1 | title1 | date1 | 1 | ...... |
2 | title2 | date2 | 1 | ...... |
3 | title3 | date3 | 2 | ...... |
4 | title4 | date4 | 1 | ...... |
N | titleN | dateN | 3 | ...... |
饲料表:
id (feed_id) | url | ..... |
---|---|---|
1 | url1 | ..... |
2 | url2 | ..... |
3 | url3 | ..... |
4 | url4 | ..... |
N | urlN | ..... |
我已经在 *** 上针对类似问题尝试了不同的解决方案,但到目前为止没有任何结果,所以也许有人有提示?
【问题讨论】:
【参考方案1】:试试这样的:
Entry.order(published_at: :desc).limit(10).group_by(&:feed_id)
谢谢!
【讨论】:
以上是关于Rails Group、Order 和 Limit 在一张表 Active Records 中的主要内容,如果未能解决你的问题,请参考以下文章
MySQL分组条件,group by order by limit 顺序
2018-07-10聚合函数+比较条件+''和NULL+DISTINCT+ORDER BY+LIMIT+GROUP BY
postgresql----排序ORDER BY,分组GROUP BY,分页OFFSET&&LIMIT