2011-04-19 78 views
0

使用GROUP BY时,我有以下方式组织的表:获取最新的条目RoR中

id | userid | action | notes | created_at 
----------------------------------------- 
1 | 1  | foo | bar | datetime 
2 | 33  | foo | bax | datetime 
3 | 1  | foo | okay | datetime 
4 | 3  | bam | bad | datetime 
5 | 33  | foo | bom | datetime 

我想做什么就能行的做的是,在Ruby on Rails的,组用户标识符,但只抓取每个组的最新条目。

既然这样,我这一步得到:

Thing.select("userid, notes").where(:action => "foo").order('`when` DESC') 

通常会返回类似:

userid | notes 
-------------- 
1  | bar 
33  | bax 

当我正在寻找的是这样的:

userid | notes 
-------------- 
1  | okay 
33  | bom 

我想我复制/粘贴,没事的......嘿。有没有办法实现我想要做的事情?不诉诸在我的应用程序本身内搜索?谢谢。

更新试图第一个建议,没有骰子。

回答

0

只需将.order(“id desc”)添加到行尾即可

+0

这似乎不起作用。仍然得到前者的结果。 – keybored 2011-04-20 15:48:04

+0

对不起,我第一次没有得到你的问题。我有一次类似的情况,并写了一个查询来做到这一点。唯一的问题是查询在MySQL上运行正常,然后在我转移到生产PostgreSQL时遇到了问题。 那时我去了应用程序。不知道是否有更聪明的方法 – 2011-04-21 16:57:40

+0

没关系,我最终通过修改了一张不同的表来修复这个问题,我不必在这个疯狂的地方钉上我的分贝。感谢您的努力! – keybored 2011-04-21 19:26:00