mysql分组取用户的前3条数据
2021/12/7 19:16:57
本文主要是介绍mysql分组取用户的前3条数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
现有:user 用户表 user_msg 用户文章表
需求:批量取一定时间范围内注册的各个用户发表的前3条文章
select * from user_msg a where a.u_id in (SELECT id FROM `user` where rec_time>="2021-11-07") and
(
select count(id) from user_msg b where b.u_id in (SELECT id FROM `user` where rec_time>="2021-11-07") and b.u_id=a.u_id and b.id<a.id
)<3
ORDER BY a.rec_time desc;
理解:针对同一个用户,将user_msg分成a、b两个相同临时表,相互比对,取出满足a表中id比b表id大的并且大的数量小于3条的记录。
假如两个表都是升序排列(方便理解),a表第4条的id肯定比b表的前三条id大,count以后应该是3,以此类推,第N条就是N-1,
所以满足条件就是前三条。
这篇关于mysql分组取用户的前3条数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南