Всем привет!
Есть таблица с файлами пользователей, надо найти последнюю запись каждого пользователя:
CREATE TABLE `files` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`userId` int(10) unsigned NOT NULL DEFAULT '0',
...
`uploadAt` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
Получается нам надо сгруппировать по userId, но как сделать чтоб userId соответствовала запись?
SELECT MAX(`uploadAt`), * FROM `files` GROUP BY `userId`
Или
SELECT * FROM `files` WHERE `uploadAt` = MAX(`uploadAt`) GROUP BY `userId`
Или
SELECT * FROM `files` AS a WHERE `uploadAt` = (SELECT MAX(`uploadAt`) FROM `files` AS b WHERE b.userId = a.userId) GROUP BY `userId`
Последний запрос отправляет сервер спать =(
Или что-то другое?