Oracle 左连接 left join、右连接right join说明

时间:2022-01-23 09:35:02

Oracle 左、右连接

+ 在等号 左边表示右连接  获取右表所有记录,即使左表没有对应匹配的记录。

+ 在等号 右边表示左连接  获取左表所有记录,即使右表没有对应匹配的记录。

例子:

select e.empno,e.name,d.deptno,d.dname,d.loc

from emp e,dept d

where e.deptno(+) = d.deptno

右连接

已知  emp表中没有40,dept表中有40,部门编号为40的没有员工。

使用右连接  from emp e right join dept d on e.deptno = d.deptno   right join on  和 +在等号左边效果相同

会获取dept表的所有记录,即便emp中没有对应匹配的40部门的记录

select  e.empno,e.ename,s.empno mgr_no,s.ename mgr_name

from emp e,emp s

where e.mrg = s.empno(+)

已知 empno 为7839 的没有mrg ,编号为7839的员工没有上司

左连接

会获取左表的所有记录,即便右表没有匹配的记录

左连接:以左表为基准

右连接:以右表为基准