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联表查询
然后我毫无顾虑的把两个查询合并到了一起
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多表查询出现重复列的解决方法
oracle数据库同时实现联表查询和分页查询(未明确定义列)
于 2020-10-03 16:38:19 首次发布