MYSQL 根据时间戳在同一 ID 中只显示一行

MYSQL Show one row only in same ID based on Timestamp

我怎样才能select 只有一行在同一个ID?

这是我的MySQL代码

Select * from logoutdetails ORDER BY LogInTime DESC LIMIT 1;

这是我的Table

--------------------------------
|  ID  |  LogInTime            |
--------------------------------
|  07  |  2017-01-25 14:41:32  |
|  08  |  2017-01-25 14:33:22  |
|  07  |  2017-01-25 14:26:28  |
|  08  |  2017-01-25 14:18:56  |
--------------------------------

id 分组以获得唯一的。然后你必须决定你想要为每个 id 获得哪个日期。使用 max() 获取每个

的最新日期
Select id, max(LogInTime) as LogInTime
from logoutdetails 
group by id

如果您对从每个 ID 中获取最近的时间戳感到满意,那么您可以试试这个:

SELECT ID, MAX(LogInTime) AS LogInTime
FROM logoutdetails
GROUP BY ID
ORDER BY ID

如果您想保留最早的登录时间,您也可以使用 MIN() 代替 MAX()

如果 logoutdetails table 有其他列,而您也想 select 那些,则必须使用子查询首先确定最大 ID 记录然后加入原来的 table。像这样:

SELECT t1.*
FROM logoutdetails t1
INNER JOIN
(
    SELECT ID, MAX(LogInTime) AS max_login_time
    FROM logoutdetails
    GROUP BY ID
) t2
    ON t1.ID = t2.ID AND
       t1.LogInTime = t2.max_login_time