我试图让 table2 的最后一行与 table1 连接。
表 1 列:
- 编号
- 姓名
- 创建日期
表2列:
- 编号
- 上次登录
- IP地址
每次用户登录时,登录数据都会存储到表 2 中。所以我试图显示表 1 中的所有用户,它显示表 2 中的 last_login
记录。
这是我当前的查询:
SELECT table1.*, table2.last_login
FROM table1
LEFT JOIN table2 ON table2.id= table1.id
ORDER BY table2.last_login desc;
通过上面的查询,我能够从两个表中获取所有数据,如果用户 A 登录了 5 次,查询将返回 5 行,但我只想显示用户详细信息及其 last_login
数据。如果我添加 GROUP BY table1.id
,它会为每个用户返回 1 行记录,但 last_login
数据未显示最新记录。
最佳答案
如果您只想要最后一次登录,也许可以使用相关子查询:
SELECT t1.*,
(SELECT MAX(t2.last_login)
FROM table2 t2
WHERE t2.id = t1.id
) as last_login
FROM table1 t1
ORDER BY last_login desc;
为了提高性能,您需要在 table2(id, last_login)
上建立索引。
关于php - 从左连接返回 mysql 查询中的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45538589/