Mysql 在RoR中使用GROUP BY时获取最新条目
我有一张桌子是按以下方式组织的:Mysql 在RoR中使用GROUP BY时获取最新条目,mysql,ruby-on-rails,Mysql,Ruby On Rails,我有一张桌子是按以下方式组织的: 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
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
我希望能够做到的是,在RubyonRails中,按userid对行进行分组,但只获取每个组的最新条目
就目前而言,我已经走到了这一步:
Thing.select("userid, notes").where(:action => "foo").order('`when` DESC')
通常会返回如下内容:
userid | notes
--------------
1 | bar
33 | bax
我要找的是:
userid | notes
--------------
1 | okay
33 | bom
我想我复制/粘贴了那张好的…呵呵。有没有办法实现我的目标?不用在我的应用程序内部搜索?谢谢
更新尝试了第一个建议,没有骰子。只需将.orderid desc添加到您的行末尾即可。对不起,我第一次没有发现您的问题。我曾经遇到过类似的情况,并编写了一个查询来完成它。唯一的问题是这个查询在MySQL上运行得很好,然后在我转到生产PostgreSQL时就失败了。当时我去了应用程序。我不确定是否有更聪明的方法可以解决这个问题,最后我改变了一个不同的桌子,在那里我不必用这些疯狂的东西来钉住我的db。谢谢你的努力!