2011-10-25 44 views
0

我正在開發使用MySQL和Visual Basic登錄/輸出表單。我現在的查詢只顯示每個用戶的最近事件,但我希望顯示前兩個事件(即:他/她何時登錄以及何時退出)Mysql排名前2的事件查詢

我有一個表event具有以下字段:

Event_ID 
User_BannerID 
Class_ID 
Timestamp  
Status  
Creator 

SELECT CONCAT(u.lastname, ', ', u.firstname) AS Name 
    , s.class AS Class 
    , DATE_FORMAT(e.timestamp,'%b %d %Y - %r') AS DateTime 
    , e.status AS Status     
FROM event e, user u, status s 
WHERE e.user_bannerid = u.user_bannerid 
    AND e.class_id = s.class_id 
    AND event_id IN 
    (
     SELECT MAX(event_id) 
     FROM event e 
     GROUP BY e.user_bannerid 
    ) 
ORDER BY name 

回答

0

在SELECT句子使用LIMIT子句正確的順序組合BY:

SELECT ... 
FROM theTable 
WHERE ... 
LIMIT 2 
ORDER BY timestamp DESC 
+0

IM和它說: 錯誤代碼:1235的MySQL的這個版本還不支持「限制和IN/ALL/ANY/SOME子查詢」 – user1012135

0

看一看一節「選擇從每個組的頂部N行」在this article

+0

感謝球員,但現在我需要別人來幫助,我有一個輸入/輸出的下拉菜單,我想阻止我的用戶點擊或退出兩次。如果他們選擇,他們必須在他們回來時選擇。 即時通訊使用Visual Basic 謝謝 – user1012135