我需要一双新的眼睛。我有两个表,其中一个有用户,第二个包含登录记录,每个用户有多个记录。我要做的是从第一个表中选择所有条目,从第二个表中选择最近的记录,例如,所有用户的列表,但只显示最近的活动。这两个表在id列中都具有自动递增功能。
我目前的代码是:
SELECT u.user_id, u.name, u.email, r.rid, r.user_id
FROM users AS u
LEFT JOIN login_records AS r ON r.user_id = u.user_id
WHERE
r.rid = (
SELECT MAX( rid )
FROM login_records
WHERE user_id = u.user_id
)
我已经搜索了一些类似问题的答案,并尝试了所有这些问题,但结果要么没有返回结果,要么只得到奇怪的结果(不一定是最新的结果)。两个表中的id都是自动递增的,所以我认为为特定用户获取唯一或最高的id应该是一件相对简单的事情,但是每次它要么不返回任何内容,要么返回完全不同的选择。
这是我第一次使用连接-我有错误的连接吗?我是否需要以不同的方式对事物进行排序或分组?
谢谢你的帮助。这一定很简单,因为这里出现的danny coulombe的答案似乎适用于其他用户。
3条答案
按热度按时间r6vfmomb1#
全部换掉怎么样
rid
在where子句和腐 eclipse 子查询中record_id
?在此处测试
im9ewurl2#
您将需要一个子查询,我相信:
https://www.db-fiddle.com/f/2wudmdvxreyjz4feyg19va/0
以及查询:
lndjwyie3#
您必须按要按说明显示的列排序,例如按上次登录说明排序。
使用要订购的列更改最后一个\u登录列,但必须在选择后首先声明最后一个\u登录列。