Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改/简化oracle中的联接_Oracle_Join - Fatal编程技术网

如何更改/简化oracle中的联接

如何更改/简化oracle中的联接,oracle,join,Oracle,Join,我在oracle查询中有一个连接,它看起来像: FROM eiv.table1 eiv.table2 b WHERE a.state_cd = b.state_code(+) 结尾处的+是什么意思 通过这个查询,我注意到有时当表中的记录不匹配时,我会得到一个空白 这是左外连接还是右外连接?这怎么能简化呢 这意味着它是一个左外连接。。。细节总是来自a,只有在满足条件时才来自b 来自eiv表1 表2 b 其中a.state\

我在oracle查询中有一个连接,它看起来像:

      FROM eiv.table1
           eiv.table2 b
       WHERE a.state_cd =
             b.state_code(+)
结尾处的+是什么意思

通过这个查询,我注意到有时当表中的记录不匹配时,我会得到一个空白


这是左外连接还是右外连接?这怎么能简化呢

这意味着它是一个左外连接。。。细节总是来自a,只有在满足条件时才来自b

来自eiv表1 表2 b 其中a.state\u cd= b、 州代码+

=

从evi.table1a左连接a.state\u cd=b.state\u代码上的evi.tableb

您可能想考虑在两个表上的状态代码使用相同的列名,但现在可能有点晚了

SELECT  *
FROM    eiv.table1 a
LEFT JOIN
        eiv.table2 b
ON      b.state_code = a.state_cs
在9i之前,Oracle不支持ANSI join语法,而是使用+子句

这可能是你想要的,也可能是你想要的 可能不会。假设我们想 返回所有数字,即使德国人 缺少翻译,我们需要一个 外部连接。外部联接使用+ 在操作员的一侧 这种情况恰好是平等的 运算符,其中我们希望有空值 如果没有匹配的值,则返回:

选择l.v英语,r.v 德语,从r,l,l.i =r.i+和r.l+=de'

这将为每一行返回一行 英语单词,即使没有 德文翻译:

英语德语 -----------------一二中卫三德雷四 五

重复: