一、内连接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个表,一个职工表和部门表,一个部门下可以有同时多个职工,但是一个职工只能属于一个部门,所以部门和职工是一对多的关系
- 如果要进行职工表和部门表的关联查询,要求查询出所有的部门信息,左连接就能够查询出结果。左连接其实就是以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 版权协议,转载请附上原文出处链接和本声明。