这个问题可能已经提出,但我的问题是指两个单独的表格。我只在使用带有日期行的相同表时才看到答案。 我有两个表,一个是用户表,另一个是login_log表。 我想从最新的日期记录和每个用户那里获得活动。 我已经进行了sql查询,但无法理解如何从单独的用户中选择max(date)。
SELECT s.username_id,s.date,s.event,m.username
FROM sys_log s join
users m
on s.username_id = m.id
id, username
---------
1 test
2 test2
id, username_id, date, event
------------------------------------------
1 1 1/1/2017 22:10:11 logout
2 1 1/1/2017 22:09:11 login
3 2 1/1/2017 21:05:11 logout
4 2 1/1/2017 21:02:11 login
输出应该是这样的
id, username, event ,date
-------------------------
1 test logout xxx
2 test2 logout xxx
答案 0 :(得分:1)
这样做你想要的吗?
select s.username_id, s.date, s.event, m.username
from sys_log s join
users m
on s.sys_auth_id = m.id
where s.date = (select max(s2.date) from sys_log s2 where s2.sys_auth_id = s.sys_auth_id);