2015-03-31 55 views
0

我得到了一個數據庫,用於註冊用戶操作及其地理位置。 現在我想抓取每個用戶最後一次操作的數據。MySQL查詢只顯示用戶分組的最後一個項目

表看起來有點像:

  • geoaction_id自動遞增
  • geoaction_user
  • geoaction_creationdate(YMD H:I:S)
  • geoaction_action
  • geoaction_lon
  • geoaction_lat

現在我想做一個簡單的查詢,選擇所有用戶的最後一個項目。

但是LIMIT 0,1只是解析一行而已。 (LOGICALLY !!)

集團通過給出一個更好的結果。

但是如何獲得每個用戶的最後一個項目?

+0

嘗試使用MAX函數以及group by maybe? https://dev.mysql.com/doc/refman/5.0/en/example-maximum-column.html。你可以發佈一些樣本數據,也應該輸出什麼樣的? – Maximus2012 2015-03-31 16:02:28

+0

您試過的查詢是什麼? – 2015-03-31 16:02:30

回答

0

請嘗試此操作,請提供您迄今檢查的查詢,以便更好地爲您提供幫助。

SELECT geoaction_user, geoaction_action 
    FROM table-name 
    GROUP BY geoaction_user 
    ORDER BY geoaction_action DESC LIMIT 1 
0

與臺工作:

SELECT 
    g.geoaction_user, 
    g.geoaction_action, 
    g.geoaction_creationdate, 
    g.geoaction_lat, 
    g.geoaction_lon 
FROM 
    (
    SELECT 
     geoaction_user, 
     MAX(geoaction_id) max_id 
    FROM 
     geoactions 
    GROUP BY geoaction_user 
    ) s 
JOIN 
    geoactions g 
    ON s.geoaction_user = g.geoaction_user 
     AND s.max_id = geoaction_id 

子查詢生成與來自於此項目表格中每個user_ID的最新條目geoaction_id一個虛擬表,然後將表連接,獲取的數據屬於最新的ID。

如果您需要篩選出一些記錄,將where子句放在子查詢中