【问题标题】:What does the (+) operator mean in a where-clause of PL/SQL?PL/SQL 的 where 子句中的 (+) 运算符是什么意思?
【发布时间】:2011-06-05 16:51:22
【问题描述】:

我有一个类似的 SQL 查询:-

Select Table1.attr1, Table1.attr2, Table2.attr3, Table2.attr4
From Tab1 Tabel1, Tab2 Tabel2
Where Tabel1.Attr = Tabel2.Attr (+)

那么上面的意思是什么?这是右外连接吗?

【问题讨论】:

  • 是的......这是重复的。当你指出它时,我现在找到了它。我已经在谷歌上搜索了好几天,但总是以其他方式结束。
  • 我知道它就在那里,但仍然很难找到它 :)

标签: sql oracle11g


【解决方案1】:

是的,这意味着正确的加入。如果语句像 .... where Tabel1.Attr (+) = Tabel2.Attr,它必须是左连接。

【讨论】:

  • Fasle,请参阅文档 techonthenet.com/oracle/joins.php 最后一点,值得一提的是,上面的 LEFT OUTER JOIN 示例可以使用旧的隐式语法重写,该语法利用外部连接运算符 (+),如下所示(但我们仍然建议使用 LEFT OUTER JOIN 关键字语法):SELECT supplier.supplier_id, supplier.supplier_name, orders.order_date FROM supplier, orders WHERE supplier.supplier_id = orders.supplier_id(+);
【解决方案2】:

我认为这是一个 LEFT OUTER JOIN(尽管批准的答案说它是一个 RIGHT OUTER JOIN)。来自Oracle documentation

Using Outer Joins: Examples

SELECT d.department_id, e.last_name
   FROM departments d LEFT OUTER JOIN employees e
   ON d.department_id = e.department_id
   ORDER BY d.department_id;


Users familiar with the traditional Oracle Database outer
joins syntax will recognize the same query in this form:

SELECT d.department_id, e.last_name
   FROM departments d, employees e
   WHERE d.department_id = e.department_id (+)
   ORDER BY d.department_id;

对于 RIGHT OUTER JOIN,您将 (+) 符号放在 = 符号之前,例如。

SELECT d.department_id, e.last_name
   FROM departments d, employees e
   WHERE d.department_id (+) = e.department_id
   ORDER BY d.department_id;

【讨论】:

    【解决方案3】:

    你是对的,+是右连接

    【讨论】:

      【解决方案4】:

      这是一个左外连接。您可以在此处找到使用示例:https://www.techonthenet.com/oracle/joins.php

      【讨论】:

        【解决方案5】:
        Select Table1.attr1, Table1.attr2, Table2.attr3, Table2.attr4
        From Tab1 Tabel1, Tab2 Tabel2
        Where Tabel1.Attr = Tabel2.Attr (+)
        

        与可识别的语法相同:

        Select Table1.attr1, Table1.attr2, Table2.attr3, Table2.attr4 From Tab1 Tabel1
        LEFT OUTER JOIN Tab2 Tabel2 on Tabel1.Attr = Tabel2.Attr
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-11-16
          • 1970-01-01
          • 2011-05-12
          • 2012-09-09
          • 2022-01-28
          • 2013-05-07
          • 2011-04-12
          相关资源
          最近更新 更多