【发布时间】:2015-07-30 10:04:12
【问题描述】:
我需要进行查询,以检索不同列的“最后”记录。
我有一个模型 Languages,它有 3 列:
Locale -> es | en | de
Version -> 1 | 2 | 3
Data -> aaa | bbb | ccc
可以按区域设置重复记录,而不是按版本。例如:
es | 1 | aaa
es | 2 | aab
es | 3 | aba
en | 1 | bbb
en | 2 | bab
在那个例子中,我需要检索这个结果:
es | 3 | aba
en | 2 | bab
会有一种语言的最后 2 个版本。我现在正在做这个查询:
Language.all.order('created_at desc').group(:locale)
但我得到了:
es | 2 | aba
en | 1 | bab
有什么想法吗?提前致谢!
【问题讨论】:
-
版本已按顺序创建,因此 created_at desc 是正确的:)
-
这会帮助
Language.all.group_by(&:locale).map{|s| s.last.last} -
非常感谢阿塔尔!这实际上完成了工作:)
标签: mysql sql ruby-on-rails activerecord