oracle怎么实现多表 连接查询 并分页。。。
原查询条件selectu.userid,u.userid,u.loginName,t.contentfromuserinfou,twittertwhereu.userid...
原查询条件select u.userid,u.userid,u.loginName,t.content from userinfo u,twitter t where u.userid=t.userid and loginname like '%java%'
这样写的不可以
select * from (select rownum as r,u.userid,u.userid,u.loginName,t.content from userinfo u,twitter t where u.userid=t.userid and loginname like '%java%')t where rownum>2 and rownum<4;
求各位大侠帮帮忙。。。。 谢谢 展开
这样写的不可以
select * from (select rownum as r,u.userid,u.userid,u.loginName,t.content from userinfo u,twitter t where u.userid=t.userid and loginname like '%java%')t where rownum>2 and rownum<4;
求各位大侠帮帮忙。。。。 谢谢 展开
推荐于2017-10-02 · 知道合伙人软件行家
关注
展开全部
oracle使用rownum伪列可以实现分页,三表连接分页示例代码如下:
select * from (select rownum r,k.kch,k.kcm,cj.cj,x.xh,x.xm from KCB k,CJB cj,XSB x where k.kch = cj.kch and cj.xh = x.xh and rownum<=10) where r>0
特别注意这样外层查询时由于内层查询的字段有重复列名,所以内层查询最后不要用*。取完每一个表字段,这样很容易报错(“无效字段”)
展开全部
多表连接最好一次从数据库中取出,在前台分页,否则每次做连接很耗费资源的。
从技术上你的写法也是对的:
select * from (select rownum as r,u.userid,u.userid,u.loginName,t.content from userinfo u,twitter t where u.userid=t.userid and loginname like '%java%')t where rownum<= currentPage*pageSize and rownum<= (currentPage+1)*pageSize
你试下。
从技术上你的写法也是对的:
select * from (select rownum as r,u.userid,u.userid,u.loginName,t.content from userinfo u,twitter t where u.userid=t.userid and loginname like '%java%')t where rownum<= currentPage*pageSize and rownum<= (currentPage+1)*pageSize
你试下。
追问
之前我 也 这么写过 。。。 但是就是报 select * from(....); 里的这个* 未定义 错误。。。。
试了好多种方法 都是这一点错误 从理论上来说 这样写 是没问题的啊????
追答
哦,那你把rownum as r放到最外层看下,可能是这个的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from (select rownum as r,u.userid,u.userid,u.loginName,t.content from userinfo u,twitter t where u.userid=t.userid and loginname like '%java%' and rownum <4 )t where r > 2;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
实际效果要看Oracle 优化以后的
不过,从理论上来说,2好一些,因为提前做了关联取的集合较小
Oracle是建议先将小集合进行关联的,然后在针对rowid进行排序
不过,从理论上来说,2好一些,因为提前做了关联取的集合较小
Oracle是建议先将小集合进行关联的,然后在针对rowid进行排序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主是不是可以考虑写个视图。然后根据视图去分页。我觉得这样会好些哦
更多追问追答
追问
我 现在 对 oracle 数据库还 不是太熟悉 啊!
我这么 写 select * from (select rownum rn , a.* from (select u.userid,u.userid,u.loginName,t.content from userinfo u,twitter t where u.userid=t.userid and loginname like '%java%')a where rownum 8
怎么会报a.* 有错呢 郁闷啊
追答
你把这句话
select rownum rn , a.* from (select u.userid,u.userid,u.loginName,t.content from userinfo u,twitter t where u.userid=t.userid and loginname like '%java%
单独扔数据库看会不会报错。应该是这句的问题了。
报的什么错哦????
我要睡觉了。。。你先折腾折腾吧,也早点睡
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询