各位大哥大姐,小弟有个问题,很急,麻烦各位帮帮忙。有两个表,users和tbl_datatrans,表结构如下:
SQL> desc users;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
USER_ID NOT NULL VARCHAR2(8)
USER_NAME NOT NULL VARCHAR2(10)
SQL> desc tbl_datatrans;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
SERIAL_NO VARCHAR2(40)
USER_ID VARCHAR2(8)
FILE_TYPE VARCHAR2(110)
主要是实现跨表查询后的分页,用存储过程实现的,主要错误是下面这段话,我现在用sql写出来,麻烦大家帮我看看,怎么解决(主要错误在users.user_id )
select * from
(
select A.*,ROWNUM RN
from (select * from tbl_datatrans,users) A
where tbl_datatrans.user_id=users.user_id and ROWNUM<=2*20
)
where RN>=(20*1+1);
SQL> desc users;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
USER_ID NOT NULL VARCHAR2(8)
USER_NAME NOT NULL VARCHAR2(10)
SQL> desc tbl_datatrans;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
SERIAL_NO VARCHAR2(40)
USER_ID VARCHAR2(8)
FILE_TYPE VARCHAR2(110)
主要是实现跨表查询后的分页,用存储过程实现的,主要错误是下面这段话,我现在用sql写出来,麻烦大家帮我看看,怎么解决(主要错误在users.user_id )
select * from
(
select A.*,ROWNUM RN
from (select * from tbl_datatrans,users) A
where tbl_datatrans.user_id=users.user_id and ROWNUM<=2*20
)
where RN>=(20*1+1);
解决方案 »
- 初学Oracle,请教个各位老师们个题目,感激不尽
- linux下面oracle 10g创建数据库问题!很急!
- 求高手赐教:关于oracle 10g 的 isqlplus启动不了问题!
- 请教如何修改这个SQL(问题:对子查询使用了聚合函数)
- asp.net如何使用oracel 连接池???
- 对ORACLE数据库服务器进行检测的应用程序经常报"ORA-03113:通信通道的文件结束!"的错误,为什么?
- ORACLE+IIS做WEB服务,产生大量连接日志的问题(100分)
- 请教oracle的两个问题(启动错误和数据恢复)
- 触发器中:old值无法正确读取的问题?
- 对于select操作能建立触发器吗?
- 我linux4.0下安装了oracle10j 但在使用startup是出现问题了
- 关于set serveroutput 默认关闭问题,如何默认是on状态
(
select a.*,b.*,rownum rn from tbl_datatrans a,users b where a.user_id=b.user_id and ROWNUM <=2*20
)
where RN>=(20*1+1);
(
select A.*,ROWNUM RN
from (select a.*,b.* from tbl_datatrans a,users b where a.user_id=b.user_id ) A
where ROWNUM <=2*20
)
where RN>=(20*1+1);
有个致命问题
两个表的USER_ID字段同名冲突,程序里调用就会有异常
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
USER_ID NOT NULL VARCHAR2(8)
USER_NAME NOT NULL VARCHAR2(10)
SQL> desc tbl_datatrans;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
SERIAL_NO VARCHAR2(40)
USER_ID VARCHAR2(8)
FILE_TYPE VARCHAR2(110) 两个表的user_id不能相同,如果是两表有关系,必须把tbl_datatrans的user_id设置为外键
select * from
(
select A.*,ROWNUM RN
from (select a.user_id,a.user_name,b.serial_no,b.file_type
from tbl_datatrans a,users b
where a.user_id=b.user_id ) A
where ROWNUM <=2*20
)
where RN>=(20*1+1);