Oracle中为什么(+)语法很少被使用?

时间:2013-01-08 15:47:20

标签: sql oracle join syntax

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

谢谢!

3 个答案:

答案 0 :(得分:3)

有很多原因可以解释为什么现在(+)语法的使用不像以前那么多:

  • Oracle现在完全支持ANSI语法(早期的Oracle版本不是这种情况)
  • ANSI语法可在不同的RDBMS之间移植,而(+)不是
  • ANSI语法(可以说)更具可读性,因为它将连接条件与过滤条件分开
  • 你不能用(+)语法
  • 做一个完整的外部联接
  • ANSI语法允许您在多个列上进行OUTER JOIN,而(AFAIK)这是不可能的(+)语法

答案 1 :(得分:2)

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

使用旧表单有一些更容易做的事情,所以你偶尔会看到它。每当我看到它,我都要回到以前的时间,穿上我的喇叭裤,希望我理解作者想要的东西。

答案 2 :(得分:0)

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

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