1

私は1つのテーブルを持っています

**user_id** | **date**
1           | 2012-10-18 09:34:4
3           | 2012-10-18 09:34:54
5           | 2012-10-17 09:14:54
6           | 2012-10-17 09:13:24
4           | 2012-10-16 08:34:54
9           | 2012-10-16 08:34:54

私が欲しいのは、最新の日時を持つuser_idです。

**user_id** | **date**
3           | 2012-10-18 09:34:54
5           | 2012-10-17 09:14:54
4           | 2012-10-16 08:34:54
4

7 に答える 7

1

GROUP BY列の日付部分で使用しdateます(タイプのようですDATETIME):

SELECT user_id, MAX(date) FROM table GROUP BY DATE(date);
于 2012-12-06T08:12:48.963 に答える
0

推測ですが、うまくいくことを願っています。

    SELECT t.user_id, t.date
    FROM table t
    WHERE t.date = (SELECT MAX(t2.date) FROM table t2 GROUP BY t2.date HAVING t2.date = t.date)

幸運を!

于 2012-12-06T08:52:13.507 に答える
0

最新の日時を持つ1人のユーザーを取得するには、これを試してください

SELECT user_id FROM TB_NAME ORDER BY date DESC LIMIT 0,1
于 2012-12-06T08:14:30.000 に答える
0

ユーザーが1人だけ必要な場合

SELECT 
    MAX(date) as LatestDateTime
FROM 
    mytable

そして複数のユーザーのために

SELECT 
    *
FROM 
    mytable
ORDER By date DESC
于 2012-12-06T08:15:09.457 に答える
0

試す:

SELECT user_id, max(date) from user group by user_id

また

select user_id from user where date = (select max(date) from user)
于 2012-12-06T08:15:22.310 に答える
0

これを試して:

select * from (
   select user_id, date
   from mytable
   order by date desc ) x
group by date(date);

注:これはmysqlのみのソリューションですが、機能します。

于 2012-12-06T08:40:24.133 に答える
0

そしてもう1つのSQLフィドル

select user_id, `date`
from mytable t1
join (select max(`date`) as max_date
      from mytable
      group by date(`date`)) t2 on t1.`date` = t2.max_date
于 2012-12-06T08:43:03.127 に答える