Выполнение запроса mysql с группировкой и упорядочением по - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть таблица MySQL, подобная этой:

дата входа - отметка времени

id       userID          loginDate
1        524             1546538626
2        524             1546538649
3        1               1546539656
4        925             1546539681
5        1073            1546544363
6        1               1546544731
7        524             1546548094
8        1073            1546548169
9        1073            15465922

Я хочу написать запрос, который показывает, какие пользователи имели последний вход в систему, а также имеют логингейт (бездупликации).Я пробовал этот запрос, но он показывает каждому пользователю первый логин!

SELECT * from 
   (select * from lastlogin order by id desc)t 
  GROUP by userID

Я не знаю, как я могу написать это.кто-нибудь может помочь?Thankyou

Ответы [ 3 ]

0 голосов
/ 17 февраля 2019
SELECT f.*
FROM fzxit_lastlogin  f
INNER JOIN
    (SELECT *, MAX(loginDate) AS MaxDateTime
    FROM fzxit_lastlogin
    GROUP BY userID) t 
ON f.id = t.id
AND f.loginDate = t.MaxDateTime
0 голосов
/ 17 февраля 2019

Если вы хотите получить дополнительную информацию от имени входа (например, идентификатор), вы можете использовать коррелированный подзапрос:

select ll.*
from lastlogin ll
where ll.id = (select ll2.id
               from lastlogin ll2
               where ll2.userId = l.userId
               order by ll2.date desc
               limit 1
              );
0 голосов
/ 17 февраля 2019

Вы можете попробовать следующим образом.

select userId,max(logindate) md
from fzxit_lastlogin 
group by userid
order by userid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...