user_id | user_destination | user_date_out | user_date_in | user_purpose | uid
0095 | NYC | 2010-11-25 | 2010-11-26 | Work | 1
0105 | Seattle | 2010-11-15 | 2010-11-20 | Work | 2
0095 | Home | 2010-11-10 | 2010-11-11 | Personal | 3
| Nashville | 2010-11-10 | 2010-11-12 | Doctober | 4
У меня есть данные выше в таблице MySQL. Мне нужен запрос, который выведет строку, если это самый последний user_date_out для этого user_id. Трудно объяснить, но строки, которые должны отображаться по запросу, - это uid 2,3 и 4 (UID 1 отпадет, потому что user_date_out «старше», чем UID 3 для одного и того же пользователя). Кто-нибудь может мне с этим помочь? Заранее спасибо!Справка по запросу MySQL (полу-уникальные результаты)
EDIT: Я решил его с помощью следующего запроса:
SELECT *
FROM `table`
WHERE `uid` = (
SELECT `uid`
FROM `table` as `alt`
WHERE `alt`.`user_id` = `table`.`user_id`
ORDER BY `user_date_out`
LIMIT 1
)
ORDER BY `user_date_out`
Найдено: http://stackoverflow.com/questions/924494/mysql-group-by-ordering – krx
@krio, что помогло! Я удалил последний «предел 3» и удалил DESC из заказа, и я получил нужные результаты! Спасибо за вашу помощь! – Trevor
@krio - можете ли вы вставить этот ответ в ответ здесь? – warren