mysql - 子查询左连接引用父ID
问题描述
我正在尝试查询以获取每个用户的最新汽车:
select * from users
left join
(select cars.* from cars
where cars.userid=users.userid
order by cars.year desc limit 1) as cars
on cars.userid=users.userid
看起来它在 where 子句中显示未知列“users.userid”,我试图删除 cars.userid=users.userid 部分,但随后它只获取 1 辆最新汽车,并将其粘贴到每个用户身上。
有什么办法可以完成我所追求的吗?谢谢!!
解决方案
为此,我通常使用row_number()
:
select *
from users u left join
(select c.* , row_number() over (partition by c.userid order by c.year desc) as seqnum
from cars c
) c
on c.userid = u.userid and c.seqnum = 1;
推荐阅读
- r - 用 NA 总结数据框
- javascript - SetTimeout 时间间隔机制
- python - Discord.py:信息命令,如何提及成员的角色?
- reactjs - 我如何测试这个自定义反应钩子
- concurrency - 使用并行计算的稀疏矩阵乘法
- winforms - Xtra 报告水印不显示
- reactjs - 如何在订单数组中呈现每个订单的产品数组
- android-studio - Android 模拟器应用程序在 axios 调用时出现网络错误
- linux - 如何在 ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%mem 的 ps 命令中获取短进程名称(cmd 参数)头
- flutter - 嗨,我是 Flutter 的新手,我使用电子邮件身份验证将我的应用程序数据存储在 Firestore 数据库中,我如何将 Facebook、移动设备无身份验证数据存储到 Firestore