以oracle使用rownum伪列实现分页为例:
孝感网站建设公司创新互联公司,孝感网站设计制作,有大型网站制作公司丰富经验。已为孝感1000多家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的孝感做网站的公司定做!
三表连接分页示例代码如下:
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 r0
特别注意这样外层查询时由于内层查询的字段有重复列名,所以内层查询最后不要用*。取完每一个表字段,这样很容易报错(“无效字段”)
select c.*,b.物品状态,dic.type
from dic a,
status b,
(select * from pc union all
select * from ps union all
select * from pd union all
select * from pg union all
) c
where a.type = b.type
and b.spw_no = c.spw_no
假设spw_no这个字段在四张表合在一起的时候也不重复,而且四张表的表结构相同,另外查询dic表用什么条件,你没有说明,自己加上去吧。如果spw_no在一张表内唯一,各个表之间不唯一,那还需要修改sql,如果唯一的话,这样就可以了。
补充:如果不合并的话,你就要程序里面进行判断要用哪张表,如果在sql里面想根据typename来确定来用哪张表的话,可以这么写。
select c.*,b.物品状态,dic.type
from dic a,
status b,
(select *,'typename1' typename from pc union all
select *,'typename2' typename from ps union all
select *,'typename3' typename from pd union all
select *,'typename4' typename from pg union all
) c
where a.typename = b.typename
and a.typename = c.typename
and b.spw_no = c.spw_no
其中typename1,typepname2,typename3,typename4的值就是你选这些表时候对于那个的typename的值。
用来关联的两个字段应该是一样的,比如员工信息表,工资表什么的,他们有共同的字段id。可以用id来关联,而不是三个不同的abc字段,你说他们有联系就能关联的,除非'a' like 'b' like 'c'。而且内连接还有更加清晰简便的方法。比如ABC三表中AB中有共同的m字段,AC中有共同的n字段。select * from A,B,C where A.m=B.m and A.n=C.n *可以替换成这三个表中的任何信息,如果只有一个表中有这个字段,直接写字段名,如果同时又几个表中含有这个字段,写成表名.字段名
t1,t2,t3三张表
用关联字段
select t1.*,t2.字段,t3.字段 from t1 ,t2,t3
where t1.id = t2.id and t2.number= t3.number
oracle中在WHERE条件里写输入:
select * from usermenu
left join sysuser on sysuser.yhdh=usermenu.yhdh
left join program on program.cxdh=usermenu.cxdh
即可关联起来。
关联也分为好几种:
SELECT * FROM TABLE1 A,TABLE2 B,TABLE3 C WHERE A.FIELD_KEY=B.FIELD_KEY AND B.FIELD_KEY=C.FIELD_KEY (正常关联)
SELECT * FROM TABLE1 A,TABLE2 B,TABLE3 C WHERE A.FIELD_KEY=B.FIELD_KEY(+) AND B.FIELD_KEY=C.FIELD_KEY(+) (左关联)
SELECT * FROM TABLE1 A,TABLE2 B,TABLE3 C WHERE A.FIELD_KEY(+)=B.FIELD_KEY AND B.FIELD_KEY(+)=C.FIELD_KEY (右关联)
要把Oracle将三张表关联起来时可以使用Oracle Database的指令,也就是Oracle数据库的指令将其关联。