这篇文章给大家介绍如何写一对多分页的SQL,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MySQL一对多的数据分页是非常常见的需求,比如我们要查询商品和开发云主机域名商品的图片信息。但是很多人会在这里遇到分页的误区,得到不正确的结果。今天就来分析并解决这个问题。
问题分析
我们先创建一个简单商品表和对应的商品图片关系表,它们之间是一对多的关系:然后我分别写入了一些商品和这些商品对应的图片,通过下面的左连接查询可以看出它们之间具有明显的一对多关系:按照传统的思维我们的分页语句会这么写:当我按照预想传入了(0,2)想拿到前两个产品的数据,结果并不是我期望的:我期望的两条数据是杯子和笔记本,但是结果却只有一条。原来当一对多映射时结果集 会按照多的一侧进行输出(期望4条数据,实际上会有7条),而前两条展示的只会是杯子的数据(如上图),合并后就只有一条结果了,这样分页就对不上了。那么如何才能达到我们期望的分页效果呢?
正确的方式
正确的思路是应该先对主表进行分页,再关联从表进行查询。抛开框架,我们的SQL应该先对产品表进行分页查询然后再左关联图片表进行查询:这种写法的好处就是通用性强一些。但是活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看MyBatis提供了一个相对优雅的路子,思路依然是开头所说的思路。只不过我们需要改造上面的Mybatis XML配置:开发云主机域名大部分情况下分页是很容易的,但是一对多还是有一些小小的陷阱的。一旦我们了解了其中的机制,也并不难解决。关于如何写一对多分页的SQL就分享到这里了开发云主机域名,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
本文从转载,原作者保留一切权利,若侵权请联系删除。
《如何写一对多分页的SQL》来自互联网同行内容,若有侵权,请联系我们删除!
还没有评论,来说两句吧...