【问题标题】:Oracle outer join(+) syntax [duplicate]Oracle 外连接(+)语法 [重复]
【发布时间】:2017-11-15 02:51:36
【问题描述】:

我对 SQL 比较陌生,并且是 Oracle 的完全初学者,并且难以理解 (+) 语法。考虑以下查询:

SELECT *
FROM   CustomerShip,
    (SELECT DISTINCT b.ShipSeq AS shipSeq
     FROM   Orders a,
            CustomerShip b
     WHERE  a.OrderId IN (SELECT OrderId
                          FROM   Orders
                          WHERE  CustomerId = @CustomerId
                          AND    OrderType <> 'A')
     AND    b.CustomerId = @CustomerId
     AND    b.ShipSeq = a.CustShip
     AND    OrderStatus <> 'C'
     GROUP BY b.ShipSeq) i
WHERE  CustomerId = @CustomerId
AND    (Address NOT LIKE '%RETAIL%STORE%')
AND    ShipSeq = i.ShipSeq(+)
ORDER BY ShipTo DESC, OrderDate DESC;

所以我收集 Oracle 中的 (+) 是 outer join,但我很困惑加入的是什么?内部查询的结果i。我需要为MSSQL 重写此查询,但不确定会是什么样子?

【问题讨论】:

  • "我对 SQL 比较陌生"。 . .那么,不要学习过时的、过时的语法。甚至 Oracle 也建议使用显式外连接。
  • 我不是。我正在修改前段时间编写的查询。

标签: sql oracle


【解决方案1】:

加入的列就在加号之前。

 ... FROM CustomerShip s LEFT OUTER JOIN (....) i ON s.ShipSeq = i.ShipSeq

【讨论】:

  • 谢谢,这正是我要找的。​​span>
猜你喜欢
  • 2017-02-22
  • 2020-06-10
  • 2011-10-03
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
  • 2015-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多