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

ORM 同时被 3 个专栏收录
80 篇文章 0 订阅
15 篇文章 0 订阅
3 篇文章 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
果不其然,报错了
在这里插入图片描述
未明确定义列
我各个博客上找解决方法可还是找不到
转载:这里是我找到了一个很详细的联表查询的例子
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多表查询出现重复列的解决方法

 

转自: https://blog.csdn.net/abckingaa/article/details/81176524

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值