【问题标题】:(+) syntax for outer joins in mysql [duplicate](+)mysql中外部连接的语法[重复]
【发布时间】:2011-10-03 06:05:11
【问题描述】:

可能的重复:
Oracle “(+)” Operator
Oracle (Old?) Joins - A tool/script for conversion?

多年来,我一直被使用 Oracle 宠坏了。现在我正在使用 mysql,在 MySQL 中找不到非 ansi 版本/速记版本的外连接。

在 oracle 中我可以做到这一点

select a.country acountry,
        a.stateProvince aStateProvince,
        b.countryName bcountry,
        b.name bstateProvince
  from User a,
          stateprovince b
  where a.country*=b.countryName **(+)**
          and a.stateProvince*=b.name **(+)**

获取外部连接。 mysql可以做类似的事情吗?

【问题讨论】:

  • 我很好奇。为什么要使用非 ansi 语法? Ansi 语法更容易理解,尤其是在复杂的查询中。
  • 其实你有的不是外连接...
  • @Bohemian:它是 Oracle 8 中的左外连接。
  • @ypercube,如果你必须使用它,它仍然是 Oracle 11g 中的左外连接;-)

标签: mysql sql oracle outer-join


【解决方案1】:

比这更简单:

select a.country acountry,
        a.stateProvince aStateProvince,
        b.countryName bcountry,
        b.name bstateProvince
  from User a
        left join
          stateprovince b
    on  a.country = b.countryName 
          and a.stateProvince = b.name 

没有。

【讨论】:

  • (+) 符号肯定更难理解。 SQL-92 连接表示法(明年就有 20 年了!)刚开始需要一点时间来适应,但一旦掌握就会好得多,这通常只需要几天的工作。
猜你喜欢
  • 2013-07-29
  • 2017-11-15
  • 2021-08-14
  • 2011-12-26
  • 2012-08-18
  • 2019-04-22
  • 1970-01-01
  • 2012-09-24
  • 2015-09-21
相关资源
最近更新 更多