Oracle 外部結合命令 :理解(+)最重要的一點是,(+)總是放在資訊匱乏的一邊,這一邊的記錄會作為空白值顯示。
舉例說明:
先預覽下我們將結合的兩個表:EMPLOYEE_CHECK 和 EMPLOYE_CHECK_TMP 。
@_1表EMPLOYEE_CHECK :
- SQL> SELECT * FROM EMPLOYEE_CHECK;
-
- EMP_ID EMP_NAME EMP_ST_ADDR EMP_ZIP EMP_ADDR EMP_CITY EMP_PHONE EMP_SALRAY
- --------- -------------------- ------------------------------ ------- -------------------- -------------------- ----------- ----------
- 100000 ZOU QI LEI BAN TIAN BULONG STREET 518000 YANG MEI VILLAGE SHEN ZHEN 123456789 3500
- 100001 CAI FANG JIE BAN TIAN BULONG STREET 518000 YANG MEI VILLAGE SHEN ZHEN 18218429577
- 100002 LU JING HUAN FAN YU SESSION 430060 YANG MEI VILLAGE GUANG ZHOU 1397165903
- 100003 WU JING XIN HU BEI DIER SHIFAN XUEYUAN 430060 MING ZHU YUAN WU HAN 187****235
- 100004 LI WEI QING SHAN GANG DU HUA YUAN 430060 XIAO QU WU HAN 197****436
@_2表EMPLOYEE_CHECK_TMP :
- SQL> SELECT * FROM EMPLOYEE_CHECK_TMP;
-
- EMP_ID EMP_NAME EMP_ST_ADDR EMP_ZIP EMP_ADDR EMP_CITY EMP_PHONE EMP_SALRAY
- --------- -------------------- ------------------------------ ------- -------------------- -------------------- ----------- ----------
- 100001 CAI FANG JIE BAN TIAN BULONG STREET 518000 YANG MEI VILLAGE SHEN ZHEN 18218429577
- 100003 WU JING XIN HU BEI DIER SHIFAN XUEYUAN 430060 MING ZHU YUAN SHEN ZHEN 187****235
- 100005 DING LING HAN KOU TAI BEI LU 430060 TIAN MEN DUN NEARBY WU HAN 137***4256 2000
現在結合這兩個表,用 '+' 進行結合查詢:
- SQL> SELECT P.EMP_NAME, P.EMP_ADDR, P.EMP_CITY, P.EMP_PHONE, T.EMP_ZIP FROM EMPLOYEE_CHECK P, EMPLOYEE_CHECK_TMP T WHERE <span style="color:#ff6600;">P.EMP_ID</span><span style="color:#3366ff;"> </span>=<span style="color:#3366ff;"> T.EMP_ID(+);
-
- EMP_NAME EMP_ADDR EMP_CITY EMP_PHONE EMP_ZIP
- -------------------- -------------------- -------------------- ----------- -------
- ZOU QI LEI YANG MEI VILLAGE SHEN ZHEN 123456789 --row_1
- CAI FANG JIE YANG MEI VILLAGE SHEN ZHEN 18218429577 518000
- LU JING HUAN YANG MEI VILLAGE GUANG ZHOU 1397165903 --row_3
- WU JING XIN MING ZHU YUAN WU HAN 187****235 430060
- LI WEI XIAO QU WU HAN 197****436 -row_5
現在觀察兩個結合查詢的表,紅色標註主表(P),查詢欄位為:
- P.EMP_NAME, P.EMP_ADDR, P.EMP_CITY, P.EMP_PHONE
藍色標註暫存資料表(T),查詢欄位為:
T.EMP_ZIP
當 '+'(結合標誌) 附屬在T表上時,除了返回滿足查詢條件WHERE P.EMP_ID=T.EMP_ID的資訊外,同時還會返回P對應的查詢欄位: row_1, row_3, row_5。