精华内容
下载资源
问答
  • Oracle多表关联查询

    千次阅读 2017-03-12 17:06:38
    在实际的应用系统开发中会涉及个数据,每个的信息不是独立存在的,而是若干个之间的信息存在一定的关联,这样当用户查询某一个的信息时,很可能需要查询关联表的信息,这就是多表关联查询。 1、内连接 内...

    在实际的应用系统开发中会涉及多个数据表,每个表的信息不是独立存在的,而是若干个表之间的信息存在一定的关联,这样当用户查询某一个表的信息时,很可能需要查询关联表的信息,这就是多表关联查询。

    1、内连接

    内连接是一种常见的多表关联查询方式,一般使用关键字INNER JOIN来实现。其中,INNER关键字可以省略,当只使用JOIN关键字时,语句只表示内连接操作。在使用内连接查询多个表时,必须在FROM子句之后定义一个ON子句,该子句用来指定两个表实现内连接的“连接条件”。需要注意的是,在内连接的检索结果中,所有记录行都是满足连接条件的。

    【实例】在SCOTT模式下,通过DEPTNO字段来内连接EMP表和DEPT表,并检索这两个表中相关字段的信息。

    --内连接
    SELECT E.EMPNO AS 员工编号,E.ENAME AS 员工名称,D.DNAME AS 部门 
    FROM EMP E INNER JOIN DEPT D
    ON E.DEPTNO = D.DEPTNO

     

    2、外连接

    使用内连接进行多表查询时,返回的查询结果中只包含符合查询条件和连接条件的行。内连接消除了与另一个表中的任何行不匹配的行,而外连接扩展了内连接的结果集,除了返回所有匹配的行外,还会返回一部分或全部不匹配的行,这主要取决于外连接的种类。

    左外连接:关键字LEFT OUTER JOIN或LEFT JOIN。

    右外连接:关键字RIGHT OUTER JOIN或RIGHT JOIN。

    完全外连接:关键字FULL OUTER JOIN或FULL JOIN。

    与内连接不同的是,外连接不只列出与连接条件匹配的行,还能够列出左表(左外连接时)、右表(右外连接时)或两个表(完全连接时)中所有符合搜索条件的数据行。在执行完全外连接时,Oracle会执行一个完整的左外连接和右外连接查询,然后将查询结果合并,并消除重复的记录行。

    【实例】实现在EMP表和DEPT表之间通过DEPTNO列进行左外连接、右外连接、完全外连接。

    --插入一条测试数据
    INSERT INTO EMP(EMPNO,ENAME,JOB)VALUES(9527,'EAST','SALESMAN');
    COMMIT;
    
    --左外连接
    SELECT E.EMPNO,E.ENAME,E.JOB,D.DEPTNO,D.DNAME
    FROM EMP E LEFT JOIN DEPT D
    ON E.DEPTNO = D.DEPTNO;
    
    --右外连接
    SELECT E.EMPNO,E.ENAME,E.JOB,D.DEPTNO,D.DNAME
    FROM EMP E RIGHT JOIN DEPT D
    ON E.DEPTNO = D.DEPTNO;
    
    --完全外连接
    SELECT E.EMPNO,E.ENAME,E.JOB,D.DEPTNO,D.DNAME
    FROM EMP E FULL JOIN DEPT D
    ON E.DEPTNO = D.DEPTNO;

     

    3、自然连接

    自然连接是指在检索多个表时,Oracle会将第一个表中的列与第二个表中具有相同名称的列进行行自动连接。在自然连接中,用户不需要明确指定进行连接的列,这个任务由Oracle系统自动完成,自然连接使用“NATURAL JOIN”关键字。

    【实例】在EMP表中检索工作(SAL字段)大于2000的记录,并实现EMP表与DEPT表的自然连接。

    --自然连接
    SELECT EMPNO,ENAME,JOB,DNAME
    FROM EMP NATURAL JOIN DEPT
    WHERE SAL > 2000;

    由于自然连接强制要求表之间必须具有相同的列名称,这样容易在设计表时出现不可预知的错误,所有在实际应用系统开发中很少用到自然连接。但这毕竟是一种多表关联查询数据的方式,在某些特定情况下还是有一定的使用价值。

     

    4、自连接

    在应用系统开发中,用户可能会拥有“自引用式”的外键。“自引用式”外键是指表中的一个列可以是该表主键的一个外键。比如,在SCOTT模式下,EMP表中某一行的MGR列值(管理者列)可能是另一行的EMPNO列值(员工列),因为管理者本身也是公司的员工。这样用户就可以通过MGR列与EMPNO列的关系,实现查询某个管理者所管理的下属员工信息。

    【实例】在SCOTT模式下,查询所有管理者的下属员工信息。

    --自连接
    SELECT EM2.ENAME AS 上层管理者,EM1.ENAME AS 下属员工
    FROM EMP EM1 LEFT JOIN EMP EM2
    ON EM1.MGR = EM2.EMPNO
    ORDER BY EM1.MGR;

     

    5、交叉连接

    交叉连接实际上就是不需要任何连接条件的连接,它使用CROSS JOIN关键字来实现,交叉连接的执行结果是一个笛卡儿积,这种查询结果是非常冗余的,但可以通过WHERE子句来过滤出有用的记录信息。

    【实例】在SCOTT模式下,通过交叉连接DEPT表和EMP表,计算出查询结果的行数。

    --交叉连接
    SELECT COUNT(*) FROM DEPT CROSS JOIN EMP;

     

    展开全文
  • oracle多表关联查询

    2016-10-17 23:24:51
    内连接 A与B进行关联查询查询出A的name字段与B的...左外联:以左为主,右为从查询出A所有的name值并且关联B的name,如果B没有与A相同的name值,那么 就用空代替。 SELECT a.*,b.* FRO

    内连接

    A表与B表进行关联查询,查询出A表的name字段与B表的name字段相等条件。

    SELECT a.*,b.* FROM A a INNER JOIN B b ON a.Name = b.Name

    外连接

    左外联:以左表为主表,右表为从表,查询出A表所有的name值并且关联B表的name,如果B表没有与A表相同的name值,那么 就用空代替。

    SELECT a.*,b.* FROM A a LEFT OUTER JOIN B b ON a.Name = b.Name

    右外联:以右表为主表,左表为从表,查询出B表所有的name值并且关联A表的name,如果A表没有与B表想痛的name值,那么 就用空代替。

    SELECT a.*,b.* FROM A a RIGHT OUTER JOIN B b ON a.Name = b.Name

    全外联:两个表所有的name想同或不相同的都会关联查询出来,如果不想等的就用空代替。

    SELECT a.*,b.* FROM A a FULL OUTER JOIN B b ON a.Name = b.Name

    展开全文
  • Oracle多表联合查询

    2019-11-18 15:00:44
    多表联合查询: –当需要获取的数据分布在张中,考虑使用联合查询 –SQL92方式 –SQL99方式 –SQL92方式 –笛卡尔积:将的数据进行一一对应,所得到结果为多表的笛卡尔积。 –结果的数量为所有的...

    —多表联合查询:
    –当需要获取的数据分布在多张中,考虑使用联合查询
    –SQL92方式
    –SQL99方式

    –SQL92方式
    –笛卡尔积:将多个表的数据进行一一对应,所得到结果为多表的笛卡尔积。
    –结果的数量为所有表的数量的乘积。
    select * from emp,dept where emp.deptno=dept.deptno
    --等值连接筛选
    –概念:先做表的笛卡尔积,然后筛选,筛选条件为等值筛选。
    –注意:条件为字段的值相同来进行筛选,字段的名字可以不同
    –查询员工姓名,工作,薪资,部门名称
    select * from emp,dept where emp.deptno=dept.deptno
    --可以直接在select子句中使用字段直接获取数据,但是效率比较低。建议字段前加上表名
    –注意:如果是公共字段,则必须声明表名
    select ename,job,sal,dname from emp,dept where emp.deptno=dept.deptno–等值连接筛选
    select emp.ename,emp.job,emp.sal,dept.dname,emp.deptno from emp,dept where emp.deptno=dept.deptno
    select e.ename,e.job,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno and sal>2000–给表使用别名
    --不等值连接
    –查询员工姓名,工作,工资,工资等级
    select * from emp e,salgrade s where e.sal>=s.losal and e.sal<=s.hisal
    --自连接:
    –查询员工姓名,工作,薪资,及上级领导姓名
    select e1.ename,e1.job,e1.sal,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno
    --外连接
    –P.S.修改表数据
    select t.*, t.rowid from emp t;
    select * from emp for update;
    –左外连接:加在右边,显示左边对应字段没有值的数据
    –查询员工姓名,工作,薪资,部门名称及没有部门的员工信息
    select * from emp e,dept d where e.deptno=d.deptno(+)
    --右外连接:加在做边,显示右边边对应字段没有值的数据
    –查询员工姓名,工作,薪资,部门名称及没有员工信息的部门
    select * from emp e,dept d where e.deptno(+)=d.deptno

    —多表联合查询:
    –当需要获取的数据分布在多张中,考虑使用联合查询
    –SQL92方式
    –SQL99方式

    –SQL99多表查询
    –注意1:依然可以给表添加别名
    –注意2:如果使用on或者usering关键对结果进行筛选,必须使用inner join作用表与表的连接,其中inner可以省略
    –注意3:外连接的 outer关键字可以省略不写
    –注意4:依然可以继续使用分组,having ,排序等
    –笛卡尔积:使用cross join 关键字
    —select 内容 from 表名 cross join
    select * from emp cross join dept
    --筛选
    –查询员工姓名,工作,薪资,部门名称
    –自然连接:使用关键字 natural join
    –使用:select 内容 from 表名 natural join 表名
    –特点1:底层先笛卡尔积,然后按照所有的同名同值字段自动进行等值筛选。
    –问题1:如果只想按照部分字段结果筛选怎么办?
    –问题2:如果想按照字段名不同,但是值相同进行等值筛选怎么办?
    select * from emp natural join dept
    --解决1:使用using关键字
    –作用1:指明使用指定的字段对联合查询的结果进行等值筛选
    –注意:指明的字段必须是两表的同名同值字段
    –使用:select 内容 from 表名 inner join 表名 using(字段名,字段名,…)
    select * from emp inner join dept using(deptno)
    --解决2:使用on关键字进行自定义连接条件筛选(等值筛选,不等值筛选)
    –注意:普通筛选条件使用where进行筛选,不要使用on进行。好处:SQL语句的阅读性变强。
    –使用:select 内容 from 表名 inner join 表名 on 连接条件 where 普通筛选条件
    select * from emp inner join dept on emp.deptno=dept.deptno where sal>2000
    –外连接:
    –左外连接:select 内容 from 表名 left outer join 表名 on 连接条件
    –查询员工姓名,工作,薪资,部门名称及没有部门的员工信息
    select * from emp e left outer join dept d on e.deptno=d.deptno
    --右外连接:select 内容 from 表名 right outer join 表名 on 连接条件
    –查询员工姓名,工作,薪资,部门名称及没有员工的部门信息
    select * from emp e right outer join dept d on e.deptno=d.deptno
    --全外连接:select 内容 from 表名 full outer join 表名 on 连接条件
    select * from emp e full outer join dept d on e.deptno=d.deptno
    --自连接:
    –查询员工及其上级领导姓名
    select e1.*,e2.ename from emp e1 inner join emp e2 on e1.mgr=e2.empno

    SQL92&SQL99实现三表联合查询

    --创建city表:使用图形操作即可
    –给city表添加测试数据
    insert into city values(1,‘商丘’,‘历史闻名古都’);
    insert into city values(2,‘邯郸’,‘历史闻名古都’);
    insert into city values(3,‘洛阳’,‘历史闻名古都’);
    insert into city values(4,‘开封’,‘历史闻名古都’);
    --将部门表中的loc字段设置为城市表的城市编号
    update dept set loc=‘1’ where deptno=50;
    update dept set loc=‘2’ where deptno=40;
    update dept set loc=‘3’ where deptno=30;
    update dept set loc=‘4’ where deptno=20;
    update dept set loc=‘4’ where deptno=10;
    --完成三表联合查询
    –SQL92实现:查询员工信息及部门名称及所在城市名称并且员工的工资大于2000或者有奖金
    –特点:易于书写,难于阅读
    –缺点:92的SQL语句结构不清晰
    –用法:
    –select 内容 (别名,连接符,去除重复,oracle函数,逻辑运算)
    –from 表名1,表名2,表名3…
    –where 条件(连接条件,普通筛选条件,where子句关键字)
    –group by 分组字段
    –having 多行函数筛选
    –order by 排序字段
    select e.*,d.dname,c.cname
    from emp e,dept d,city c
    where (e.deptno=d.deptno and d.loc=c.cid and sal>2000) or (e.deptno=d.deptno and d.loc=c.cid and comm is not null)
    order by e.sal
    --SQL99实现:查询员工信息及部门名称及所在城市名称并且员工的工资大于2000或者有奖金
    –特点:难于书写,易于阅读
    –使用:
    –select 内容 from 表名1
    – inner join 表名2
    – on 连接条件
    –inner join 表名3
    –on 连接条件
    –where 普通筛选条件
    –group by 分组
    –having 多行函数筛选
    –order by 排序
    select * from emp e
    inner join dept d
    on e.deptno = d.deptno
    inner join city c
    on d.loc =c.cid
    where e.sal>2000 or e.comm is not null
    order by e.sal

    展开全文
  • oracle 多表联合查询

    千次阅读 2017-04-17 22:38:55
    此时如果要对分组后的数据再次进行过滤,则使用HAVING子句完成,那么此时的SQL语法格式如下: SELECT [DISTINCT] *|分组字段1 [别名] [,分组字段2 [别名] ,…] | 统计...FROM 名称 [别名], [名称 [别名] ,…

    http://blog.csdn.net/rosekin/article/details/39298255

    此时如果要对分组后的数据再次进行过滤,则使用HAVING子句完成,那么此时的SQL语法格式如下:

    复制代码
    SELECT [DISTINCT] *|分组字段1 [别名] [,分组字段2 [别名] ,…] | 统计函数
    
    FROM 表名称 [别名], [表名称 [别名] ,…]
    
    [WHERE 条件(s)]
    
    [GROUP BY 分组字段1 [,分组字段2 ,…]]
    
    [HAVING 分组后的过滤条件(可以使用统计函数)]
    
    [ORDER BY 排序字段 ASC | DESC [,排序字段 ASC | DESC]];
     
     

    下面使用HAVING进行过滤。

    SELECT d.deptno,d.dname,d.loc,COUNT(e.empno) mycount,NVL(AVG(e.sal),0) myavg
    FROM dept d,emp e
    WHERE d.deptno=e.deptno(+)
    GROUP BY d.deptno,d.dname,d.loc
    HAVING AVG(sal)>2000;

    注意点:WHERE和HAVING的区别

    • WHERE:是在执行GROUP BY操作之前进行的过滤,表示从全部数据之中筛选出部分的数据,在WHERE之中不能使用统计函数;
    • HAVING:是在GROUP BY分组之后的再次过滤,可以在HAVING子句中使用统计函数;

    五、子查询

    子查询 = 简单查询 + 限定查询 + 多表查询 + 统计查询的综合体;

    在之前强调过多表查询不建议大家使用,因为性能很差,但是多表查询最有利的替代者就是子查询,所以子查询在实际的开发之中使用的相当的多;

    所谓的子查询指的就是在一个查询之中嵌套了其他的若干查询,嵌套子查询之后的查询SQL语句如下:

    复制代码
    SELECT [DISTINCT] *|分组字段1 [别名] [,分组字段2 [别名] ,…] | 统计函数 ,(
    
          SELECT [DISTINCT] *|分组字段1 [别名] [,分组字段2 [别名] ,…] | 统计函数
    
          FROM 表名称 [别名], [表名称 [别名] ,…]
    
          [WHERE 条件(s)]
    
          [GROUP BY 分组字段1 [,分组字段2 ,…]]
    
          [HAVING 分组后的过滤条件(可以使用统计函数)]
    
          [ORDER BY 排序字段 ASC | DESC [,排序字段 ASC | DESC]])
    
    FROM 表名称 [别名], [表名称 [别名] ,…] ,(
    
          SELECT [DISTINCT] *|分组字段1 [别名] [,分组字段2 [别名] ,…] | 统计函数
    
          FROM 表名称 [别名], [表名称 [别名] ,…]
    
          [WHERE 条件(s)]
    
          [GROUP BY 分组字段1 [,分组字段2 ,…]]
    
          [HAVING 分组后的过滤条件(可以使用统计函数)]
    
          [ORDER BY 排序字段 ASC | DESC [,排序字段 ASC | DESC]])
    
    [WHERE 条件(s) (
    
          SELECT [DISTINCT] *|分组字段1 [别名] [,分组字段2 [别名] ,…] | 统计函数
    
          FROM 表名称 [别名], [表名称 [别名] ,…]
    
          [WHERE 条件(s)]
    
          [GROUP BY 分组字段1 [,分组字段2 ,…]]
    
          [HAVING 分组后的过滤条件(可以使用统计函数)]
    
          [ORDER BY 排序字段 ASC | DESC [,排序字段 ASC | DESC]])]
    
    [GROUP BY 分组字段1 [,分组字段2 ,…]]
    
    [HAVING 分组后的过滤条件(可以使用统计函数)]
    
    [ORDER BY 排序字段 ASC | DESC [,排序字段 ASC | DESC]];
    复制代码

    理论上子查询可以出现在查询语句的任意位置上,但是从个人而言,子查询出现在WHERE和FROM子句之中较多;

    以下的使用特点为个人总结,不是官方声明的:

    • WHERE:子查询一般只返回单行列、多行单列、单行多列的数据;
    • FROM:子查询返回的一般是多行的数据,当作一张临时表出现。


    <strong>内连接</strong> 
    同时显示部门名称和员工信息。Select两个表的写法,内连接。公共匹配的 
    数据 
    简化的写法 
    Dept表,employee表 
    Select d.name,e.name,sex from employee e,dept d where e.id=d.id 
    标准的写法: 
    Select d.name,e.name,sex from employee e join dept d on e.id=d.id 
     
    <strong>外连接:</strong> 
    左连接: 
    左边员工表的记录全部显示。右边表只显示匹配的,相同的部分显示一次 
    Select d.name,e.name,sex from employee e,dept d where e.id=d.id(+) 
    右连接正好相反 
    左连接和右连接合成为外连接 
     
    <strong>子查询</strong> 
    In写法和下面的exists是一个意思 
    Select * from employee e where id not in (select id from dept where id=’3’); 
    Select * from employee e where id in (select id from dept where id=’3’); 
     
    Exists写法和上面的in是一个意思,exists可以用*来匹配。 
    Select * from employee e where not exists (select * from d where id=e.id) 
    Select * from employee e where exists (select id from d where id=e.id) 
     
     
    union合并行数据,只是显示,不变化物理数据 
    select id from e 
    union 
    select id from d; 
    相同的行数据合并。不同的只显示一次 
     
     
    <u>将两个表中合并显示。只是显示相同的行数据</u> 
    Select id from e 
    Intersect 
    Select id from d 
     
     
    <strong>用别的表的结果集插入到别的表中</strong> 
    Insert into e(eid,ename) select id,name from d; 
     
    <strong>复制表</strong> 
    将一行数据放进去表中,把已有表的字段和数据行 
    放到一个表中用来复制 
    Create table ttt as select e.id,e.name from e where eid=’001’  






    展开全文
  • Oracle 多表联合查询优化

    千次阅读 2019-09-19 12:25:32
    假设高速缓冲里已经存储了执行过的sql语句,那就直接匹配执行了,少了步骤,自然就快了,但是经过测试会发现高速缓冲只对简单的起作用,多表的情况完全没有效果,例如在查询的时候那叫一个快,但...
  • ORACLE 多表关联查询SQL 语法结构梳理

    千次阅读 2013-11-09 15:25:05
    ORACLE 多表链接查询SQL语法有两种,一种是标准SQL多表联查语句结构(left join | right join ...),一种是ORACLE自身多表联查语句结构(使用"+") 1、标准SQL多表链接查询(以oracle自带emp,dept为例): --标准...
  • Oracle 多表关联查询后修改

    千次阅读 2014-05-27 10:12:49
    --两张表关联查询后修改,修改2014年4月份出租车违法数据的同步标志位 update t_veh_traffic_vio t set synchflag = 0, synchstatus = 'u' where t.wfsj > to_date('2014-04-01', 'yyyy-mm-dd') and t.wfsj ('...
  • select * from ( select ROWNUM AS R, n.classid,n.infoid,t.webname from newinfo n inner join website t on t.websiteid=n.syswebid and n.isdel=0 ) where R>5 AND R<=10
  • Oracle 多表联合查询SQL92语法版

    千次阅读 2018-05-17 22:11:17
    1、笛卡尔积 全排列,将A和B中的数据一一对应一次,得到一个新的结果集。... 在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接中的所有列,包括其中的重复列 ...
  • select t.tid,t.*,z.*,f.* from 1 t,2z, (select * from (select rank() over(partition by bd_id order by p_id desc) r,a.* from 3 a) where r=1) f where t.tid=z.zid and 1=1 and t.tid=f.fid
  • sql如下: SELECT n.polno 保单号,  (SELECT np.uppercomcname  FROM ncdcompanycollation np  where np.comcode = n....查询结果:如下图: 查询结果存在保单号重复数据,尚未完成去重,后续完成
  • 一、多表联合查询 通过连接可以建立多表查询多表查询的数据可以来自,但是之间必须有适当的连接条件。为了从张表中查询,必须识别连接张表的公共列。一般是在WHERE子句中用比较运算符指明连接的条件...
  • 一、多表联合查询 通过连接可以建立多表查询多表查询的数据可以来自,但是之间必须有适当的连接条件。为了从张表中查询,必须识别连接张表的公共列。一般是在WHERE子句中用比较运算符指明连接的条件...
  • create or replace view v_shipowner_all_test as ...这只是一部分,一共50,想做一张大视图.结果发现,查询了一个晚上也没有查询出结果,怎么样才能提高查询速度呢?或者有什么其他解决办法?????
  • oracle多表关联分页条件查询 最近使用oracle数据库,在查询数据时,需要多表关联查询,而mybatis-plus的selectPage()方法只能实现单的分页条件查询,而且发现时间模糊查询查不到数据,因此需要自己写SQL语句 分页...
  • oracle 多表联接查询

    2011-10-12 10:01:11
    oracle 多表联接查询,注意是联接查询,获取中的部分数据,
  • oracle表关联查询

    千次阅读 2018-07-04 17:51:00
    oracle表关联查询 CreationTime--2018年7月4日17点27分 Author:Marydon 情景描述  查询学生student,sname,sex,age信息及所在班级clazz 1.使用左连接 select sname, sex, age, cname from ...
  • oracle表关联查询

    千次阅读 2018-07-04 17:55:00
    oracle表关联查询 CreationTime--2018年7月4日17点52分 Author:Marydon 左连接实现三表关联 A---------------------------------关联第一张表B-----------------------关联第二张表c 1.语法  select * ...
  • Oracle 多表查询优化

    2013-09-06 10:20:35
    Oracle 多表查询优化
  • 我这上面一段sql,查询的是一个一对的关系,取多方最新的一条数据,现在我HISTORY表里有2万条数据,最后查询出来的少了几千条,也就是说 我多方那个里面没有记录,它取不了,然后就不显示吗?不应该有一条空...
  • ORACLE数据库多表关联查询效率问题解决方案
  • oracle多表递归查询

    2019-12-04 17:40:49
    oracle多表递归查询和修改 #对Oracle熟悉,在这里记录一下 // 向下递归 SELECT * FROM table WHERE xxx in (SELECT * FROM xxx start with xxx = xxx connect by prior xxx = xxx); //向上递归 SELECT * FROM table...
  • oracle多表关联多字段update

    千次阅读 2019-04-20 09:22:57
    oracle多表关联多字段update
  • Oracle SQL 多表关联查询以及分组计算

    千次阅读 2019-07-29 12:13:40
    遵循第三范式,我们需要联合多表查询结果返回给用户,若查询时不指定条件,会以笛卡儿积方式返回数据,这并不是我们希望的。 SELECT table1.column, table2.column FROM table1, table2 WHERE table1.column1 = ...
  • 一些ORACLE链接查询。求最高,最低,排序
  • 在对oracle数据库进行操作的时候,我们往往会有这样的困惑:  1、新增数据时,按照mySql的写法... 那么在下面,将详细讲解单的增删改成及多表关联查询该如何书写sql语句: 首先,我们要建立数据库的连接,在src
  • Oracle -多表查询

    2009-02-24 04:25:30
    Oracle 多表查询,笔记哦,oracle ocp
  • Oracle多表关联更新的应用研究.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 173,704
精华内容 69,481
关键字:

oracle多表关联查询