oracle怎么多表查询,oracle多表查询语句

oracle数据库 多表连接查询

以oracle使用rownum伪列实现分页为例:

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站制作、网站建设、酒泉网络推广、微信小程序开发、酒泉网络营销、酒泉企业策划、酒泉品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供酒泉建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

三表连接分页示例代码如下:

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

特别注意这样外层查询时由于内层查询的字段有重复列名,所以内层查询最后不要用*。取完每一个表字段,这样很容易报错(“无效字段”)

oracle中怎么实现多表查询

查询,首先你得清楚你需要什么数据,以及你所需要的数据,存在于哪些表中,或者说与哪些表有关联。

SQL 语句基本查询语法: 不加条件查询,select * from 表名 ; 加条件查询:select * from 表名 where 满足的条件;

多表查询 :select a.* ,b.* from 表1 a,表2 b where a.字段=b.字段;

oracle多表查询

我对你的表进行了整理下,没有使用中文,都是英文编写,严格按照企业的要求,这也是比较好的习惯。

以下是建表语句:

create table T_USER_INFO

(USERID number(5) primary key,

USERNAME varchar2(10),

CREDENTIALS varchar2(20));

create table T_CHARGING

(CHARGINGID number(5) primary key,

USERID number(5),

MONEY number(5),

CHARGINGDATE date);

insert into T_USER_INFO values(1, '张三', '222222');

insert into T_USER_INFO values(2, '李四', '333333');

insert into T_CHARGING values(1, 1, 300, to_date('2008-9-1', 'yyyy-mm-dd'));

insert into T_CHARGING values(2, 1, 300, to_date('2009-9-1', 'yyyy-mm-dd'));

insert into T_CHARGING values(3, 1, 300, to_date('2010-9-1', 'yyyy-mm-dd'));

insert into T_CHARGING values(4, 2, 400, to_date('2014-9-1', 'yyyy-mm-dd'));

用户信息表:

计费表:

接下来是查询语句,分了几步,注意理解。

1、查询每个人的最后缴费时间

select USERID, max(CHARGINGDATE) LASTDATE 

from  T_CHARGING 

group by USERID

执行 结果:

2、将第一步得到的结果与用户信息关联查询

select u.USERID, u.USERNAME, u.CREDENTIALS, t.LASTDATE 

from T_USER_INFO u, (select USERID, max(CHARGINGDATE) LASTDATE 

from  T_CHARGING group by USERID) t 

where t.USERID = u.USERID

执行结果:

3、将第二步得到的结果与计费表进行关联查询。

select t0.USERID, t0.USERNAME, t0.CREDENTIALS, t0.LASTDATE, tc.MONEY

from (select u.USERID, u.USERNAME, u.CREDENTIALS, t.LASTDATE 

from T_USER_INFO u, (select USERID, max(CHARGINGDATE) LASTDATE 

from  T_CHARGING 

group by USERID) t 

where t.USERID = u.USERID) t0, T_CHARGING tc 

where tc.USERID = t0.USERID and t0.LASTDATE = tc.CHARGINGDATE;

执行结果:


当前文章:oracle怎么多表查询,oracle多表查询语句
文章起源:http://hbruida.cn/article/hojseh.html