数据库是这样的:
id testID date
1 100 10/12/2012
2 100 10/13/2012
3 102 10/14/2012
我们将此数据库称为“测试”
我希望输出为ActiveRecord:包含
的关系id testID date
2 100 10-13-2012
3 102 10-14-2012
我知道如何将结果作为数组获取,如下所示:
result = []
testIDList = Test.uniq.pluck(:testID)
testIDList.each do |tID|
result = result + Test.where(:testID => tID).order('date DESC').limit(1)
end
在这种情况下,result是一个ActiveRecord:Relation数组 但我希望结果是ActiveRecord:Relation,我试图使用merge没有成功。
答案 0 :(得分:1)
尝试
result = Test.order(:date).group(:testID)
答案 1 :(得分:0)
试试这个:
result = Test.where(:testID => testIDList)
.select("max(`date`) as recent_date").group(:testID)