2014-01-25 37 views
0

我每次登錄時該列表洛用戶的表。該表是這樣的從多個條目中選擇頂記錄

id | user | cmd | ts 
1 | john | login | 2014-01-19 18:26:01 
2 | mark | login | 2014-01-19 18:36:00 
3 | john | login | 2014-01-19 18:40:13 
4 | dave | login | 2014-01-19 18:41:58 
5 | john | login | 2014-01-19 18:50:59 
6 | mark | login | 2014-01-19 19:03:23 
7 | dave | login | 2014-01-19 19:15:13 
8 | mark | login | 2014-01-19 19:26:58 

,我需要選擇只從該表中的最新登錄,所以輸出我想到的是

id | user | cmd | ts 
5 | john | login | 2014-01-19 18:50:59 
7 | dave | login | 2014-01-19 19:26:58 
8 | mark | login | 2014-01-19 19:15:13 

這就是我試圖

SELECT * FROM `logins` group by user having count(*) <= 1 order by ts 

我得到了零行

+0

什麼我錯過這裏什麼是你想通過'有COUNT(*),以達到<= 1'?以及如何查詢會給你'ID,用戶,CMD,ts'的預期輸出,而你要求'用戶,TS,COUNT(*)'? – Alexander

+1

請在這裏貼上您的創建,插入表查詢,所以我們可以很容易地品嚐 –

+0

你可以使用LIMIT限制記錄 –

回答

2
SELECT id,user,cmd,MAX(ts) ts FROM `logins` 
group by user 
1

您的訂單缺少方向。嘗試添加ASC或DESC。在你的情況下,將DESC

order by ts DESC

+0

酵母的數量,但是那不是錯誤,我仍然得到與遞減 – Smith

+0

零行的語句刪除該組'計數(*)<= 1「的用戶組 –

0
SELECT user,ts,count(*) FROM `logins` LIMIT 3 group by user order by ts DESC