如何找到最新的帖子 - 但每个用户只有一个?

时间:2011-01-17 21:45:41

标签: sql ruby-on-rails conditional-statements

假设我有一个属于用户的帖子模型。用户有很多帖子。

是否有快速简单的方法来获取创建的最新帖子,但每个用户最多一个?因此,即使用户A发布了5个最新帖子,也只返回最新的帖子,然后是用户B的帖子。

可以不添加手动逻辑吗?

2 个答案:

答案 0 :(得分:1)

Post.select('DISTINCT posts.*').group(:user_id).order('created_at desc')

答案 1 :(得分:1)

组方法每组只返回一条记录。

Post.group(:user_id)

更新

您不能以这种方式控制从每个组中获得哪一个,但它似乎使用在数据库中创建的最新组。