返回从左连接的mysql查询中的最后一行
问题描述:
我想获取table2的最后一行,我将其与table1连接在一起。返回从左连接的mysql查询中的最后一行
表1列:
- ID
- 名
- 创建日期
表2列:
- 号
- LAST_LOGIN
- IP_ADDRESS存入记录在表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)
的索引。
谢谢!这解决了我的问题:) –
(这可能是PRIMARY KEY) – Strawberry