SQL語法 | PL/SQL | Function | TRIGGER | StoreProc | DBA

2009年9月4日 星期五

自我連接Self-join

 

同 一 個 表 格 連 接 到 自 己 , 這 就 稱 為 「 自 我 連 接 」 (Self-join) 。假 設 你 想 知 道 每 個 僱 員 的 上 司 名 稱 , 你 可 以 把 EMP 進 行 自 我 連 接 :

select  EMP.EMPLOYEEID  ,EMP.CHN_NAME ,EMP.TITLE   ,
EMP.MANAGER_ID 
from EMPLOYEES EMP

EMPLOYEEID CHN_NAME TITLE MANAGER_ID
1 張瑾雯 業務 2
2 陳季暄 業務經理 5
3 趙飛燕 業務 2
4 林美麗 業務 1
5 劉天王 業務經理 13
6 黎國明 業務 5
7 郭國臹 業務 5
8 蘇涵蘊 業務主管 2
9 孟庭亭 業務 5
12 賴俊良 資深工程師 2
13 何大樓 助手 1
14 王大德 工程師 2

select  EMP.EMPLOYEEID "員工編號",EMP.CHN_NAME "員工姓名",EMP.TITLE "員工職稱",'---->',
MANAGER.EMPLOYEEID "所屬主管編號",MANAGER.CHN_NAME "所屬主管姓名",MANAGER.TITLE "所屬主管職稱"
from EMPLOYEES EMP,EMPLOYEES MANAGER 
where  EMP.MANAGER_ID = MANAGER.EMPLOYEEID(+)

 

員工編號 員工姓名 員工職稱 ---->' 所屬主管編號 所屬主管姓名 所屬主管職稱
13 何大樓 助手 ----> 1 張瑾雯 業務
4 林美麗 業務 ----> 1 張瑾雯 業務
14 王大德 工程師 ----> 2 陳季暄 業務經理
12 賴俊良 資深工程師 ----> 2 陳季暄 業務經理
8 蘇涵蘊 業務主管 ----> 2 陳季暄 業務經理
3 趙飛燕 業務 ----> 2 陳季暄 業務經理
1 張瑾雯 業務 ----> 2 陳季暄 業務經理
9 孟庭亭 業務 ----> 5 劉天王 業務經理
7 郭國臹 業務 ----> 5 劉天王 業務經理
6 黎國明 業務 ----> 5 劉天王 業務經理
2 陳季暄 業務經理 ----> 5 劉天王 業務經理
5 劉天王 業務經理 ----> 13 何大樓 助手

沒有留言: