oracle数据库同时实现联表查询和分页查询(未明确定义列)

121 篇文章 1 订阅
57 篇文章 0 订阅

ps:只是记录新手小白的脱坑之路,大佬勿喷
今天在做前端数据查询的时候,在实现联表查询的同时进行分页查询遇到了令人头秃的问题,分页查询的sql语句是这样的
select * from
(select rownum rn,p.* from product p)
where rn>0 and rownum<=5
分页查询
按照每页五条查询product表的第一页
然后联表查询的sql语句是这样的
select p.,pt. from product p left outer join producttype pt on p.ptid=pt.ptid
根据ptid联表查询
根据ptid联表查询
然后我毫无顾虑的把两个查询合并到了一起
select * from
(select rownum rn,d.,p. from product d left outer join producttype p on d.ptid=p.ptid)
where rn>0 and rownum<=5
果不其然,报错了
在这里插入图片描述
未明确定义列
我各个博客上找解决方法可还是找不到
转载:这里是我找到了一个很详细的联表查询的例子
oracle左连接(用户表,中间表,角色表)的分页查询_weixin_43888267的博客-CSDN博客
但还是报了校内共同的错误
可能大佬们都不会犯我这样的低级错误
最后令人头秃的发现报错的原因是因为
联表查询product和producttype两个表中都有ptid也就是查询条件这一列
然后分页查询的时候无法辨别查询的是哪一列而报的错
解决方法就是
select * from
(select rownum rn,d.*,p.ptname from product d left outer join producttype p on d.ptid=p.ptid)
where rn>0 and rownum<=5
删掉重复的那一列ptid,然后就能实现联表查询和分页查询了
我在找错的同时发现了几篇比较好的多表查询和联表查询的文章
记录一下同时分享给大家
Oracle中分页查询和联表查询 - 伏羲轩 - 博客园 Oracle中分页查询和联表查询
oracle怎么实现多表 连接查询 并分页。。。_百度知道 百度知道里的这个问题应该和我遇到的是同一个问题,多表查询结果出现了重复列
Mybatis oracle多表联合查询分页数据重复的问题 - 秋楓 - 博客园 这个是oracle多表查询出现重复列的解决方法

转自: Bee框架,一个十分钟即可学会的ORM框架--Bee_abckingaa的博客-CSDN博客_bee orm

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一种基于Spring Framework的快速开发Web应用程序的框架,而Oracle是一种强大的关系型数据库。在一些大型项目中,我们需要使用多个表进行分页查询,并将查询结果呈现给用户,这时我们可以结合Spring Boot和Oracle实现多表分页查询实现多表分页查询需要引入Spring Boot的分页插件和Oracle的JDBC驱动。在查询数据之前,我们需要定义一个分页信息对象,包含要查询的页数、每页的数据量,以及查询结果的排序信息和过滤条件等。然后,我们可以使用Spring Boot提供的JdbcTemplate或MyBatis框架与Oracle数据库进行数据交互。 为了实现多表分页查询,我们需要在SQL语句中使用Join语句将多个表连接起来,并使用分页插件对查询结果进行分页处理。在处理分页查询时,我们可以采用传统的分页方式,即先查询出所有符合条件的记录总数,然后进行分页查询;也可以采用性能更高的Limit方式,直接指定查询结果的起始位置和数目。 在实现多表分页查询时,我们还需要注意查询效率和查询结果的正确性。通常情况下,我们可以对经常被访问和查询的表进行索引优化,提高查询速度。同时,我们还应该注意使用正确的字段进行Join和分组操作,避免查询结果出现重复数据或遗漏数据的情况。 在使用Spring Boot和Oracle进行多表分页查询时,我们需要掌握相关的知识和技术,才能更好地完成项目开发任务。为此,我们可以参考相关的教程和文档,了解其运行原理和应用场景,提高开发效率和质量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值