2012-06-20 104 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)