我有一个注册用户操作及其地理位置的数据库。 现在我想在每个用户的最后一个动作的手中获取这些数据。
该表看起来有点像:
现在我想做一个简单的查询,选择最后一项的所有用户。
但LIMIT 0,1无论如何只会解析一行。 (逻辑!!)
分组给出了更好的结果。
但是如何只获得每个用户的最后一项?
答案 0 :(得分:0)
试试这个,请提供您目前检查过的查询,以便更好地为您提供帮助。
SELECT geoaction_user, geoaction_action
FROM table-name
GROUP BY geoaction_user
ORDER BY geoaction_action DESC LIMIT 1
答案 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
子查询使用tabble中最新条目的geoaction_id为每个user_id生成一个虚拟表,然后连接该表以获取属于最新id的数据。
如果需要过滤掉一些记录,请在子查询中放置where子句