自連接是指在同一張表的連接查詢
? 顯示員工的上級領導的姓名,比如顯示‘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(+);
