2011-11-30 100 views
0

我想找到最近20天的審覈表,我已經寫了下面的MySQL查詢最新的數據:如何在rails 3活動記錄查詢中轉換以下查詢?

SELECT * 
from (select * from audits ORDER BY id DESC) as x 
where (auditable_type = 'Investment' 
and auditable_id =41 
and created_at <= '2011-12-01' AND created_at >= '2011-11-25') 
group by date(created_at) 

我想將其轉換爲Rails 3的活動記錄查詢,我應該怎麼做,我會得到兩個查詢的結果都一樣嗎?

+0

爲什麼你需要在開始本次查詢? –

回答

1

我不認爲你可以得到比這更好(不使用一些寶石一樣meta_where):

Audits.where(
    'DATE(created_at) <= ? AND DATE(created_at) >= ? 
    AND auditable_type = ? AND auditable_id = ?', 
    Date.new(2011, 12, 01), Date.new(2011, 11, 25), 'Investement', 41 
).group('DATE(created_at)').order('id DESC') 
+0

嘿謝謝你的響應,但它不會返回任何東西,如果我在這個查詢上執行.to_sql,它將不會返回上面提到的sql查詢 – Sunny

+0

我想從該日期範圍查找數據,但是最新更新。意思是說有20條記錄的日期20,所以我的查詢應該返回最新的更新記錄20日期 – Sunny

+0

那麼,您的查詢包含子查詢,我仍然不明白。由於它沒有限制條款,它應該返回滿足條件的所有記錄,而不僅僅是最新的更新時間,不是嗎? –