我正在检查一些旧的SQL语句,以便记录它们并可能增强它们.
DBMS是Oracle
我不明白这样的陈述:
select ...
from a,b
where a.id=b.id(+)
Run Code Online (Sandbox Code Playgroud)
我对(+)操作员感到困惑,并且无法在任何论坛上得到它...(在引号内搜索+也不起作用).
无论如何,我使用了SQLDeveloper的"解释计划",我得到了一个输出说HASH JOIN, RIGHT OUTER,等等.
如果我(+)在查询结束时删除运算符会有什么不同吗?数据库是否必须满足某些条件((+)如有一些索引等)才可以使用?如果你能给我一个简单的理解,或者我能读到的一些好的链接,那将会非常有帮助.
谢谢!
我有两个表TABLE1,它们看起来像:
id name address
1 mm 123
2 nn 143
Run Code Online (Sandbox Code Playgroud)
和TABLE2 w/c看起来像:
name age
mm 6
oo 9
Run Code Online (Sandbox Code Playgroud)
我想通过比较来获得不存在的名称TABLE1用TABLE2.
所以基本上,我必须得到第二行,w/c有一个不存在的NN名称,TABLE2输出应该如下所示:
id name address
2 nn 143
Run Code Online (Sandbox Code Playgroud)
我试过这个,但它不起作用:
SELECt w.* FROM TABLE1 W INNER JOIN TABLE2 V
ON W.NAME <> V.NAME
Run Code Online (Sandbox Code Playgroud)
它仍然获得现有记录.