我试图得到我与table1一起离开的最后一行table2。
表1列:
表2专栏:
登录数据存储到table2中。所以我试图显示table1中显示table2中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
数据未显示最新记录。
答案 0 :(得分:0)
如果您只想要上次登录,可能会使用相关的子查询:
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)
上的索引。
答案 1 :(得分:0)
尝试在SQL中使用MAX
函数