oracle自连接

自连接是指在同一张表的连接查询

?       显示员工的上级领导的姓名,比如显示‘FORD’的上级

①查询出FORD这个人的上级编号:

select mgr from emp where ename='FORD';

②显示上级的信息:

select * from emp where empno=(select mgr from emp where ename='FORD');

扩展要求

?       显示各员工的姓名和他的上级领导姓名

思路:把emp表看做两张表(worker,boss)

select worker.ename,boss.ename from emp worker,emp boss where worker.mgr=boss.empno;

疑惑:这里我们看到KING没有显示,因为KING没有上级,如果我们希望把没有上级的人也显示出来,则需要使用外连接。

select worker.ename,boss.ename from emp worker,emp boss where worker.mgr=boss.empno(+);

posted @ 2019-07-01 14:07  樊伟胜  阅读(3531)  评论(0)    收藏  举报