2013-03-21 68 views
0

我在此查詢中使用了兩個表。第一個表是「用戶」,第二個表是「日誌」。我試圖顯示來自「users」的列「用戶名」和來自日誌的「time_stamp」列,但我只希望結果顯示每個「用戶名」的最新「time_stamp」無法寫入MySQL查詢以正常工作

這是我的查詢:

SELECT users.username, logs.time_stamp 
FROM users, logs 
WHERE users.u_id=logs.user_id 
    AND logs.user_action='user login' 
GROUP BY (username) 
ORDER BY logs.time_stamp DESC 

這就是我得到:

Alex 2013-02-20 10:51:52 
Bill 2013-02-13 12:32:33 
Mike 2013-02-13 10:53:47 
Rick 2013-02-08 12:34:50 
Admin 2013-02-08 01:55:31 

它乍看上去還行,但它不顯示最近針對每個用戶的TIME_STAMP。我無法弄清楚我做錯了什麼,任何幫助將不勝感激。

感謝

+0

如果你只是想最近的時間戳,你爲什麼讓用戶操作?如果用戶登錄不是最近的操作,它現在不會顯示最新的時間戳,是嗎? – 2013-03-21 10:33:34

+0

那麼我在該列中有更多的操作,而不僅僅是「用戶登錄」。 – Alex 2013-03-21 11:01:28

回答

0

您應該使用MAX聚合函數:

SELECT 
    users.username, 
    MAX(logs.time_stamp) 
FROM 
    users INNER JOIN logs ON users.u_id=logs.user_id 
WHERE 
    logs.user_action='user login' 
GROUP BY username