sql一对多查询,且分组后组内根据字段排序

举个例子:比如说,有一个游客表,存储游客的信息,有一个游玩记录表,存储游玩记录的信息,两表呈现一对多关系,每个游客都有不止一条游玩记录,现在我要查询出每一个游客最近一次去游玩的游玩记录信息,这时候查询就是一对多,且要根据游客分组,且分完组后要在组内根据游玩时间倒叙排列,取第一条。

举个例子:就比如说游客表 a 长这样:

idnameage
1张三18
2李四22

再比如游玩记录表 b 长这样

iduser_idplacedate
11环球影城2022-05-06 11:22:33
22故宫2022-05-06 11:22:33
32环球影城2022-05-06 11:22:33
41环球影城2022-05-06 11:22:33

上边俩表意思就是,张三在2022–5-6 11:22:33去环球影城玩了一趟,下边的user_id对应上边的id

SQL长这样:


select * from(
select *,row_number() over (partition by user_id order by date) rn 
from b where user_id in(select id from a) t1) t2 
where rn =1

参考:https://blog.csdn.net/zhangyang_2015/article/details/103166090

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值