php - mySQL:如何将用户与仅返回最新日志的user_logs结合起来?

标签 php mysql join

大家好,我有 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/

相关文章:

MySQL - 如何连接这三个表并从中获取数据?

php - SELECT QUERY WITH UPDATE QUERY,如果 MYSQL 字段发生更改,则发送电子邮件

MySQL 连接两个仅部分匹配的表

mysql - 使用连接的 SQL 查询速度很慢,可能是索引问题

php - mysql PHP查询包含连接计数

php - MySQL Relational friends scheme?

php - 创建一个报告,显示开始日期和结束日期之间每一天的具体统计数据

php - 从 Android 获取 PHP 中的 Post 数据

php - 如何使用 mySQL 创建 php 登录表单

mysql - 非单调 SQL 查询(查找只喜欢某事的名字)