Дана таблица в базе:
ID USER_ID PRICE DATE
1 1 100 12312311
2 2 101 12312312
3 1 103 12312313
4 2 102 12312314
Т.е. ставки сделали 2 пользователя. Дата в формате UNIXTIME (просто INTEGER т.е.)
Задача: вывести последние ставки пользователей, т.е. результатом должны быть две строки с последними ставками этих пользователей: - первая строка = ставка одного пользователя последняя, вторая соотв. второго.
Суть задачи: сформировать оптимальный mySQL-запрос (по скорости, учитывая что за раз может быть тысячи таких запросов на одной странице)
SELECT u.`user_id`, u.`price`, u.`date`
FROM `users` u JOIN
(SELECT `user_id`, max(`date`) as `mtime` FROM `users` GROUP BY `user_id`) as t1
ON u.`user_id`= t1.`user_id` AND u.`date` = t1.`mtime`;
Воооот так вот :)