可能重复:
Oracle:(+)在WHERE子句中做什么?
在Oracle数据库环境中考虑下面的简化SQL查询(虽然我不确定它是否特定于Oracle):
SELECT
t0.foo, t1.bar
FROM
FIRST_TABLE t0, SECOND_TABLE t1
WHERE
t0.ID (+) = t1.ID;
Run Code Online (Sandbox Code Playgroud)
(+)该WHERE条款中的符号是什么?如果这是一个无知的新手问题,我很抱歉,但是在Google或StackOverflow上搜索非常困难......因为即使使用引号,搜索引擎也会看到一个"+"符号,似乎想把它视为某种逻辑指令.
Ben*_*oit 61
这是外部联接的特定于Oracle的表示法.这意味着它将包括来自t1的所有行,并且如果t0中没有对应的行,则在t0列中使用NULLS.
在标准SQL中,人们会写:
SELECT t0.foo, t1.bar
FROM FIRST_TABLE t0
RIGHT OUTER JOIN SECOND_TABLE t1;
Run Code Online (Sandbox Code Playgroud)
如果您的版本支持ANSI连接(LEFT/RIGHT JOIN), Oracle 建议不要再使用这些连接:
Oracle建议您使用FROM子句OUTER JOIN语法而不是Oracle join运算符.使用Oracle连接运算符(+)的外连接查询受以下规则和限制的约束[...]
| 归档时间: |
|
| 查看次数: |
106654 次 |
| 最近记录: |