0

话题。我很困惑,真的需要一个很好的解释。

谢谢你!

4

3 回答 3

3

现在 (+) 语法没有像早期那样被使用有几个原因:

  • Oracle 现在完全支持 ANSI 语法(早期的 Oracle 版本不是这种情况)
  • ANSI 语法在不同的 RDBMS 之间是可移植的,而 (+) 不是
  • ANSI 语法(可以说)更具可读性,因为它将连接条件与过滤条件分开
  • 您不能使用 (+) 语法进行 FULL OUTER JOIN
  • ANSI 语法允许您在多个列上进行 OUTER JOIN,而 (AFAIK) 使用 (+) 语法是不可能的
于 2013-01-08T15:55:13.887 回答
2

+ 表示法是 Oracle 供应商特定的形式,在供应商之间并不一致,MS SQL Server 有一个使用 * 的类似形式,这会导致巨大的混乱,我相信 * 在 = 的另一边。您说 LEFT JOIN 等的 ANSI 形式更具可读性并且是标准。

旧形式有一些更容易做的事情,所以你仍然偶尔会看到它。每次看到都想回到以前,穿上喇叭裤,希望能明白作者的意思。

于 2013-01-08T15:52:59.113 回答
0

有一种方法可以在 ANSI SQL 中指定它,使用 OUTER/INNER 连接语法。

只有 Oracle 并且可能是其他供应商支持 (+) 语法,因此最好使用所有数据库都支持的语法。

于 2013-01-08T15:50:59.743 回答