相关疑难解决方法(0)

Oracle"(+)"运算符

我正在检查一些旧的SQL语句,以便记录它们并可能增强它们.

DBMS是Oracle

我不明白这样的陈述:

select ...
from a,b
where a.id=b.id(+)
Run Code Online (Sandbox Code Playgroud)

我对(+)操作员感到困惑,并且无法在任何论坛上得到它...(在引号内搜索+也不起作用).

无论如何,我使用了SQLDeveloper的"解释计划",我得到了一个输出说HASH JOIN, RIGHT OUTER,等等.

如果我(+)在查询结束时删除运算符会有什么不同吗?数据库是否必须满足某些条件((+)如有一些索引等)才可以使用?如果你能给我一个简单的理解,或者我能读到的一些好的链接,那将会非常有帮助.

谢谢!

sql oracle join outer-join

145
推荐指数
4
解决办法
21万
查看次数

如何通过JOIN从另一个表中查找不存在的数据?

我有两个表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)

我想通过比较来获得不存在的名称TABLE1TABLE2.

所以基本上,我必须得到第二行,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)

它仍然获得现有记录.

mysql sql join anti-join

6
推荐指数
1
解决办法
9735
查看次数

标签 统计

join ×2

sql ×2

anti-join ×1

mysql ×1

oracle ×1

outer-join ×1