--查询每一个员工的部门
--两张表做关联查询时,其中一张表要查询全量的数据,并且不会因为另一张表的关联而被筛选掉
--在两张表关联的时候,非全量表的关联字段后面加上 “(+)” 就可以做外连接查询
select * from dept d,emp e where d.deptno = e.deptno(+);
select * from dept
--左连接/ 做外连接查询时,全量表在左边就是左连接
select * from dept d,emp e where d.deptno = e.deptno(+);
--右连接 做外连接查询时,全量表在右边就是右连接
select * from emp e, dept d where e.deptno(+) = d.deptno;
--查询员工的编号,姓名和他的上级领导的编号,姓名
select e.empno, e.ename, e1.empno, e1.ename from emp e , emp e1 where e.mgr = e1.empno;
--这样的话总裁没有查出来 可以采取外连接的方式
select e.empno 员工编号,
e.ename 员工姓名,
e1.empno 上级领导编号 ,
e1.ename 领导姓名
from emp e, emp e1
where e.mgr= e1.empno(+) ;
--sql1999的用法
select * from emp e, dept d where e.deptno = d.deptno;
--等同于
--左连接
select * from emp e left join dept d on e.deptno = d.deptno; -- 左边是全量的数据
--右连接
select * from dept d right join emp e on d.deptno = e.deptno; -- 右边是全量的数据