Задать вопрос
golovewkin
@golovewkin
WEB - Разработчик

Запрос делается с помощью вложенных запросов?

Дана таблица в базе:
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-запрос (по скорости, учитывая что за раз может быть тысячи таких запросов на одной странице)

Спасибо
  • Вопрос задан
  • 142 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
golovewkin
@golovewkin Автор вопроса
WEB - Разработчик
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`;
Воооот так вот :)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Оптимально - создать вторую таблицу только с последними ставками и обновлять её по триггеру первой (или наоборот, первую по триггеру из второй).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы