2013-03-13 17 views
0

Несколько раз задавали этот вопрос, но так и не получили ответа!Получить последнее из нескольких строк

У меня есть таблица, которая выглядит следующим образом:

answer_id q_id answer qscore_id answer_timestamp 
1   10 Male 3   1363091016 
2   10 Male 3   1363091017 
3   11 Male 3   1363091018 
4   10 Male 3   1363091019 
5   11 Male 3   1363091020 
6   12 Male 3   1363091020 
7   11 Male 3   1363091025 

Так у меня есть несколько ответов на те же вопросы (q_id). Я хочу, чтобы получить только один ответ на вопрос, и это самый последний ответ.

IE.

Там должно быть три строки, возвращаемые, которые все самые последние ответили на этот q_id:

4   10 Male 3   1363091019 
6   12 Male 3   1363091020 
7   11 Male 3   1363091020 

Любая помощь будет очень ценна.

Thanks

+0

@tombom почему отверг мой предложенный вариант? – fedorqui

+0

Я ничего не отвергал? – fancyPants

+0

Ооооооооооооооооооооооооооооооо! http://stackoverflow.com/review/spected-edits/1707149 – fedorqui

ответ

2

Используйте подзапрос, чтобы получить максимальные отметки времени, а затем присоединиться к этой спиной к столу

SELECT a.answer_id, a.q_id, a.answer, a.qscore_id, a.answer_timestamp 
FROM SomeTable a 
INNER JOIN (SELECT q_id, MAX(answer_timestamp) AS answer_timestamp FROM SomeTable GROUP BY q_id) Sub1 
ON a.q_id = Sub1.q_id AND a.answer_timestamp = Sub1.answer_timestamp 
+0

Блестящий. Спасибо. – ojsglobal

-2

выбрать * из таблицы где q_id =? заказ по answer_timestamp лимита по убыванию 3

+0

Это просто даст мне три последних ответа на вопросы, а не последние ответы на три отдельных вопроса. – ojsglobal

Смежные вопросы