Possible Duplicate:
甲骨文:做什么(+)在哪里条款中?

在Oracle数据库环境中考虑以下简化的SQL查询(尽管我不确定它是特定于Oracle的):

SELECT 
   t0.foo, t1.bar
FROM
   FIRST_TABLE t0, SECOND_TABLE t1
WHERE
   t0.ID (+) = t1.ID;

那是什么(+)WHERE条款?对不起,如果这是一个无知的新手问题,但是极其在Google或Stackoverflow上很难搜索…因为即使使用报价标记,搜索引擎也会看到"+“标志,并且似乎想将其视为某种逻辑指令。

答案

这是外部连接的特定于Oracle的符号。这意味着它将包括T1的所有行,并在T0中没有相应的行,在T0列中使用nulls。

在标准SQL中,一个人会写:

SELECT t0.foo, t1.bar
  FROM FIRST_TABLE t0
 RIGHT OUTER JOIN SECOND_TABLE t1;

Oracle建议如果您的版本支持ANSI加入(左/右JOIN),建议不要再使用这些加入

Oracle建议您使用从子句外部加入语法而不是Oracle Join Operator。使用Oracle Join Operator(+)的外部加入查询受到以下规则和限制[…]

来自: stackoverflow.com