大家好,我有 2 个表(用户/日志之类的东西)
tk_assets(用户) tk_sessions(日志)<-- 其中每个日志都包含 stamp_in 和 stamp_out 纪元值(组成用户的 1 个 session 。
当用户的最新 session 没有 stamp_out 值(仍处于登录状态)时,用户被视为已登录
我只需要检索数据库中的所有用户及其“最新 session ”..
用简单的英语来说,这就是 “选择每个用户及其最近的 session ”
我似乎无法找出正确的 SQL 语句..
SELECT
tk_assets.ass_id,
tk_sessions.stamp_in,
tk_sessions.stamp_out
FROM
tk_assets
LEFT JOIN tk_sessions ON tk_assets.ass_id = tk_sessions.ass_id
GROUP BY
tk_sessions.ass_id
ORDER BY
tk_sessions.stamp_in DESC
这是我所知道的..
最佳答案
除非您需要其他信息,MAX
应该可以帮助您。
SELECT u.*, MAX(l.stamp_out) FROM user u
INNER JOIN logs l ON l.user_id = u.id
WHERE l.stamp_out = 0
GROUP BY u.id
如果您需要更多,请看看这个问题:MySQL JOIN the most recent row only?
关于php - mySQL:如何将用户与仅返回最新日志的user_logs结合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25567472/