2011-04-19 120 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