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;

求各位大侠帮帮忙。。。。 谢谢
展开
 我来答
手机用户30677
2011-09-24
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
实际效果要看Oracle 优化以后的
不过,从理论上来说,2好一些,因为提前做了关联取的集合较小
Oracle是建议先将小集合进行关联的,然后在针对rowid进行排序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光亮天空
2011-09-24
知道答主
回答量:0
采纳率:0%
帮助的人: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(....); 里的这个* 未定义 错误。。。。

试了好多种方法 都是这一点错误 从理论上来说 这样写 是没问题的啊????
追答
哦,那你把rownum as r放到最外层看下,可能是这个的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sxdtgsh
2011-09-24
知道答主
回答量:0
采纳率:0%
帮助的人: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%' and rownum <4 )t where r > 2;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式