Oracle SQL

1.oracle (+) 含义

SELECT
A.id, B.IDD
FROM
A, B
WHERE
A.id(+)=B.IDD
等价于
SELECT
A.id, B.IDD
FROM
A RIGHT OUTER JOIN B ON ( A.id=B.IDD)

SQL> select * from A;

ID VAL
---------- ----------
1 A1
2 A2

SQL> select * from B;

IDD VAL
---------- ----------
1 B1
3 B3

SQL> SELECT
2 A.id, B.IDD
3 FROM
4 A, B
5 WHERE
6 A.id(+)=B.IDD;

ID IDD
---------- ----------
1 1
3

SQL> SELECT
2 A.id, B.IDD
3 FROM
4 A RIGHT OUTER JOIN B ON ( A.id=B.IDD);

ID IDD
---------- ----------
1 1
3

意思是 两表关联的时候,
B 表的数据, 全部检索出来。
A表的数据,则是在B表有相对应的数据的情况下,才检索出来。

(+)是outer join 的意思,能将匹配备件中有空值的记录也显示出来,如果没有这个符号,则不会显示条件中包含空值的结果
posted @ 2013-08-16 01:53  williamwindy  阅读(239)  评论(7编辑  收藏  举报