2012-06-20 3 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) 
Смежные вопросы