0

mysqlでテーブルを作成したいのですが、テーブルにはuser_id、activity(オンラインまたはオフライン)の3つの列とタイムスタンプがあります。次に、すべてのuser_idと最新のステータスをテーブルに表示します。現在使用中

 SELECT DISTINCT user_id,activity FROM activity ORDER BY timestamp DESC

ステートメントは、ユーザーが最後にオンラインとオフラインになったのはいつかを示していますが、これは私が望んでいることではありません。

4

2 に答える 2

1
select user_id, max(timestamp) ts from activity a
inner join
   (select user_id, activity, max(timestamp) ts
   group by user_id, activity) iam
on iam.user_id =a.user_id and a.ts = iam.ts  
于 2012-10-23T18:40:03.050 に答える
1

これを試して:

 select act.*
 from activity as act
      inner join (
          select user_id, max(timestamp) as max_ts
          from activity
          group by user_id) as a on act.user_id=a.user_Id and act.timestamp=a.max_ts

これにより、各ユーザーの最新のレコードが返されます。

于 2012-10-23T18:42:50.493 に答える