Показать сообщение отдельно
Старый 29.06.2010, 15:17     # 1
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
MySQL новые записи

Есть таблица с такой структурой:
id
user_id
amount
insert_date

Данные примерно такие:
1 / 1 / 15 / 2010-04-13 12:05:11
2 / 1 / -2 / 2010-04-22 09:00:49
3 / 1 / -1 / 2010-04-22 09:01:17
4 / 2 / 8 / 2010-04-22 09:06:45
5 / 2 / -1 / 2010-04-22 09:10:41
6 / 2 / -1 / 2010-04-22 09:12:37
7 / 2 / -1 / 2010-04-22 09:12:42
8 / 1 / 10 / 2010-06-09 00:00:00
9 / 1 / -2 / 2010-06-09 12:59:00
10 / 3 / 5 / 2010-06-09 13:27:45

Нужна выборка по user_id. Чтобы для каждого user_id получить последнюю запись где количество больше нуля.

Результат должен получиться такой:
8 / 1 / 10 / 2010-06-09 00:00:00
4 / 2 / 8 / 2010-04-22 09:06:45
10 / 3 / 5 / 2010-06-09 13:27:45

У меня получился такой запрос:
Код:
SELECT u.id, u.amount, u.user_id, u.insert_date, u3.user_id AS user_id2, u3.insert_date AS insert_date2
FROM users_konto AS u
INNER JOIN ( SELECT u.id, u.user_id, u.amount, MAX( u2.insert_date ) AS  insert_date
   FROM users_konto u
   LEFT JOIN ( SELECT id, user_id, amount, insert_date
      FROM users_konto WHERE amount >0 ) AS u2 ON u.id = u2.id
      GROUP BY u.user_id
      HAVING u.amount >0 ) AS u3 ON u3.user_id=u.user_id AND u3.insert_date=u.insert_date
WHERE u.amount >0
Мне это решение не очень нравится. Чтобы проблем не возникло, туда нужно уникальный ключ делать на user_id + insert_date.

Более красивые варианты есть?
EvroStandart вне форума