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)に対して複数の回答があります。質問ごとに1つの回答のみを取得できるようにしたいのですが、それが最新の回答です。

IE。

3つの行が返されるはずです。これらはすべて、そのq_idに対して最新の回答です。

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

どんな助けでも本当にありがたいです。

ありがとう

4

2 に答える 2

3

副選択を使用して最大タイムスタンプを取得し、それをテーブルに対して結合します

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
于 2013-03-13T09:27:10.667 に答える
-2

q_id =?のテーブルから*を選択します。answer_timestampによる注文desclimit3

于 2013-03-13T09:24:59.663 に答える