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

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
果不其然,报错了
在这里插入图片描述
未明确定义列
我各个博客上找解决方法可还是找不到
转载:这里是我找到了一个很详细的联表查询的例子
https://blog.csdn.net/weixin_43888267/article/details/84894441
但还是报了校内共同的错误
可能大佬们都不会犯我这样的低级错误
最后令人头秃的发现报错的原因是因为
联表查询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,然后就能实现联表查询和分页查询了
我在找错的同时发现了几篇比较好的多表查询和联表查询的文章
记录一下同时分享给大家
https://www.cnblogs.com/songhengchao/p/9034710.html Oracle中分页查询和联表查询
https://zhidao.baidu.com/question/322610397.html 百度知道里的这个问题应该和我遇到的是同一个问题,多表查询结果出现了重复列
https://www.cnblogs.com/rwxwsblog/p/6287830.html 这个是oracle多表查询出现重复列的解决方法

猜你喜欢

转载自blog.csdn.net/xiao_xiao_b/article/details/88075041