欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关联查询解决办法

更新时间: 2014-01-05 02:15:45 责任编辑: Author_N1

 

关联查询
什么是关联查询,大侠们能不能举个例子,并把具体的代码格式写出来。
--参考方法--
关联查询多张表,而表与表之间是有联系的,是通过字段中的数据的内在联系来发生,而不是靠相同的字段名来联系的或者是否有主外键的联系是没有关系的,

  select dname,ename from emp,dept;

  笛卡尔积  (无意义的)

  --当2个表作关联查询的时候一定要写关联的条件

  --N个表 关联条件一定有N-1个

  select dname,ename from mydept,myemp

  where mydept.no = myemp.deptno;

  多表查询的时候一定要有关联的条件

  --使用的表的全名

  select dname,ename from emp,dept

  where emp.deptno = dept.deptno ;

  --等值连接(内连接-两个表的数据作匹配a.deptno = b.deptno )

  select dname,ename,a.deptno from

  emp a inner join dept b

  on a.deptno = b.deptno;

  where a.deptno = 10;

  --on写连接条件的

  --where中写别的条件

  --使用where/on

  select dname,ename,a.deptno from emp a,dept b

  where a.deptno = b.deptno and a.deptno=10;

  --on中写连接条件

  --where中写其他的条件

  select dname,ename,a.deptno from

  emp a inner join dept b

  on a.deptno = b.deptno

  where a.deptno = 10 ;

  --外连接

  左外连接 右外连接  全外连接

  (+)写法只有在ORACLE中有效

  select dname,ename,b.deptno

  from emp a,dept b

  where a.deptno(+) = b.deptno;

  --标准写法

  select dname,ename,b.deptno

  from emp a right outer join dept b

  on a.deptno = b.deptno;

  select dname,ename,b.deptno

  from emp a,dept b

  where a.deptno = b.deptno(+);

  --标准写法

  select dname,ename,b.deptno

  from emp a left outer join dept b

  on a.deptno = b.deptno;

  --标准写法(全外联)

  select dname,ename,b.deptno

  from emp a full outer join dept b

  on a.deptno = b.deptno;

例1:

--Oracle 查看一个表对应的主键和外键的约束关系,查看的语句: 
 select a.owner, --主键拥有者  
        a.table_name, --主键表  
      b.column_name, --主键列  
        c.OWNER, --外键拥有者  
      c.table_name, --外键表  
      d.column_name --外键列  
from user_constraints  a  
 left join user_cons_columns b   
             on  a.constraint_name=b.constraint_name  
 left join user_constraints c   
           on c.R_CONSTRAINT_NAME=a.constraint_name  
 left join user_cons_columns d  
         on c.constraint_name=d.constraint_name  
where  a.constraint_type='P'  
    and  a.table_name='C_STORE' --需要查看主外键关系的表  
order by a.table_name;  


上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:15:45
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7688/
本文WWW.DOC100.NET DOC100.NET版权所有。