2011-01-06 85 views
0

我有兩個表:上次登錄連接兩個表

members (
    userid int primary key 
) 

login_history (
    userid int, 
    login datetime 
) 

一個條目,以login_history表由每次用戶登錄

我想編寫一個查詢來找到每一個用戶。上次登錄時間。即。如果用戶沒有登錄歷史記錄,則MAX(登錄)或返回null。什麼是最好的SQL來完成這個?感謝

回答

1
SELECT m.userid, MAX(l.login) 
    FROM members m LEFT OUTER JOIN login_history l 
    ON m.userid = l.userid GROUP BY m.userid 
3

試試這個

select nvl((max(login_history.login)),NULL), login_history.userid 
from login_history, outer members 
where login_history.userid = members.userid 
group by login_history.userid 
+0

`nvl`→`COALESCE`,沒有理由不使用標準的功能。實際上,第二個參數爲null,你不能完全忽略它嗎? – derobert 2011-01-06 18:50:57

+0

@derobert - 我認爲他們都是標準? – CheeseConQueso 2011-01-06 18:53:00