2017-07-02 74 views
0

这个问题可能已经问过了,但我的问题涉及两个单独的表格。我只在与日期行相同的表上看到了答案。 我有两个表,一个是用户表,另一个是login_log表。 我想从最新的日期记录和每个用户获取事件。 我已经做了SQL查询,但不知道如何从单独的用户选择最大(日期)。如何从每个用户获取loginevent的最新记录?

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

您有一个查询,两个结果集,并且没有数据的解释。我很困惑。 –

+0

@Somepub你想要每个用户的最新登录? –

+0

@YossiVainshtein你是对的。对不起,有点混乱! – Somepub

回答

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); 
+0

谢谢你理解我!我现在可以看到这个查询逻辑是如何工作的 – Somepub

相关问题