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。
Oracle教程:Redo write触发的四种情况Oracle命令 ROLLUP相关资讯 Oracle高级培训
- delete表的数据后恢复 (08/30/2012 08:59:58)
- 使用ASH信息,发现高CPUsession (08/14/2012 07:21:32)
- 如何阅读Oracle Errorstack Output (08/14/2012 07:15:47)
| - Oracle Apps Patching:adpatch( (08/16/2012 15:41:37)
- 话说V$SQL_MONITOR (08/14/2012 07:19:54)
- Oracle Apps DBA工具:ADADMIN使用 (08/14/2012 07:00:09)
|
本文评论 查看全部评论 (0)