2017-07-02 90 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

相關問題