现有学生表、班级表,学生表关联到班级表,结构如下图:
执行查询:
select * from
(
select rownum as r,t.* FROM
(
SELECT s.id, c.name FROM stuinfo s,classes c WHERE s.classesid=c.id
)
t where rownum<=6) where r>4;
没问题,得到结果如下:
更改sql语句如下:
select * from
(
select rownum as r,t.* FROM
(
SELECT s.id,s.name ,c.id ,c.name FROM stuinfo s,classes c WHERE s.classesid=c.id
)
t where rownum<=6) where r>4;
执行结果报错,如下图:
分析结果由于学生表中有id,name,班级表中有id,name,联合查询以后列名都是id,name故外边的查询区分不开两个表的id、name,故各自给id、name取别名代替原有的列名,语句代码如下:
select * from
(
select rownum as r,t.* FROM
(
SELECT s.id AS id1 ,s.name AS name1,c.id AS id2,c.name AS name2 FROM stuinfo s,classes c WHERE s.classesid=c.id
)
t where rownum<=6) where r>4;
执行后问题解决,效果如下图: