2017-01-25 9 views
0

Как выбрать только одну строку в том же ID?MYSQL Показать только одну строку только в том же ID на основе метки времени

Это мой MySQL код

Select * from logoutdetails ORDER BY LogInTime DESC LIMIT 1; 

Это моя таблица

-------------------------------- 
| 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 | 
-------------------------------- 

ответ

0

Группа по id получить только уникальные. Затем вам нужно решить, какую дату вы хотите получить за каждые id. Используйте max(), чтобы получить последнюю дату каждого

Select id, max(LogInTime) as LogInTime 
from logoutdetails 
group by id 
+0

Это прекрасно работает, Большое вам спасибо –

1

Если вы удовлетворены принимая самую последнюю метку времени от каждого ID, то вы можете попробовать это:

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

Вы также можете использовать MIN() вместо MAX(), если вы хотите сохранить самое раннее время входа в систему.

Если в таблице logoutdetails были другие столбцы, и вы тоже хотели их выбрать, вам нужно будет использовать подзапрос, чтобы сначала идентифицировать максимальные записи ID, а затем присоединиться к исходной таблице. Что-то вроде этого:

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