这是一个创建于 1323 天前的主题,其中的信息可能已经有所发展或是发生改变。
假设有数据表 user, user_login,
user 表,
id | uid
1 | 1001
2 |002
user_login 表
id | uid | content
1 | 1001 | 数据 1 |
2 | 1002 | 数据 2 |
3 | 1001 | 数据 3|
4 | 1001 | 数据 4 |
5 | 1002 | 数据 5|
现在将 user 表当主表,左连接查询 login 表,
select * from user as t1 left join (select max(id),content group by uid)
这样查到的结果 uid 和 content 对不上,也就是会随机选择一个值,
像这种情况想要根据主表的 uid,不同的 uid 匹配关联表中 uid 相等的最新一条记录该如何做。
这个表字段等都是随手写的,不用考虑太多,像这种能不能通过只通过 sql 语句查出来
|
|
1
yeqizhang 2020-09-19 01:00:47 +08:00 via Android
右表建议再包装一层查 maxID 记录的 content 。
不知道我印象中有问题还是新的特性啥的,我之前用 group by,结果中只能是 group by 后的字段加聚合函数之类的
|
|
|
2
nuistzhou 2020-09-19 01:30:54 +08:00 via iPhone
可以先用 group by 处理 login 表拿到每个 uid 的最新 id 的 record,然后插回 user 表吧,应该就没有多对一插入这种随机问题性了。
|