Oracle的三种连接使用场景

  • Post author:
  • Post category:其他


一、内连接Inner Join。

某些情况内连接和直接多表查询等效

select * from D inner join E on D.f=E.a 等效 select * from D,E where D.f=E.a

内连接查询只能够查询出符合条件的记录,但是不符合条件的记录时无法查询出来的 。

    select * from dept inner join employee on dept.deptid=employee.deptid

    select * from dept,emp where  dept.dtid=emp.dtid

二、外连接Outer Join。

外连接具体分为右外连接right outer join和左外连接left outer join。

例如:有2个表,一个职工表和部门表,一个部门下可以有同时多个职工,但是一个职工只能属于一个部门,所以部门和职工是一对多的关系

  1. 如果要进行职工表和部门表的关联查询,要求查询出所有的部门信息,左连接就能够查询出结果。左连接其实就是以left join前面的表为主表,即使有些记录关联不上,后面的表对应数据为空,但是主表的信息还是能够查询出来的。
select * from dept left outer join emp on dept.dtid=emp.dtid

2.如果要进行职工表和部门表的关联查询,要求查询所有的职工信息,右连接就能够查询出结果。右连接就是以right join后面的表为主表,即使有些记录关联不上,前面的表对应数据为空,但是主表的信息能够查询出来

select * from dept right outer join emp  on dept.dtid=emp.dtid


总结一下,外连接就是在不能完全关联情况下,把需要的部分信息查询出来。

三、全连接Full Join

全连接是左外连接和右外连接查询结果的并集

select * from dept full join emp on dept.detid=emp.dtid

oracle三种连接的具体概念可以参考我的另外一篇《

oracle 内连接、外连接、全连接



版权声明:本文为weixin_43679441原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。