2012-06-20 81 views
0

我遇到了一个小问题,我现在无法修复^ _ ^并希望看到您的建议。 这个问题只是关于从mysql表中获取多条记录的最新更新。 以下是示例数据,但真实数据有数千条记录。最新更新记录的有效记录查询

Id site_id  updated_at    value 
1 1   "2012-05-14 09:04:02" 5 
2 2   "2012-05-14 09:04:02" 8 
3 2   "2012-05-15 09:04:02" 9 
4 3   "2012-05-16 09:04:02" 7 
5 1   "2012-05-17 09:04:02" 5 
6 1   "2012-05-18 09:04:02" 3 

,我想有XXXX函数将返回

Id site_id  updated_at    value 
6 1   "2012-05-18 09:04:02" 3 
4 3   "2012-05-16 09:04:02" 7 
3 2   "2012-05-15 09:04:02" 9 
+0

哪个数据库? –

+0

这是mysql数据库。 –

回答

1

像这样的事情?

YourModel.order("updated_at desc").limit(3) 
+0

这个记录只是一个样本,而不仅仅是3个不同的记录。可能是我需要找到多少个不同的记录。 –

+0

那么,该行会给你三个最新的更新记录。如果你想要另一个号码,只需将'3'换成其他号码即可。 – Frost

+0

您的解决方案非常简单..我不知道为什么我找不到这个解决方案......谢谢 –

1

假设您的模型被称为Account

Account.joins("LEFT OUTER JOIN accounts a 
    ON a.site_id = accounts.site_id AND a.value > accounts.value"). 
    where("a.value IS NULL").order("accounts.updated_at DESC").limit(3)