我经常看到像这样写sql的人:
SELECT * from TableA LEFT OUTER JOIN TableB ON (ID1=I2)
我自己写的很简单:
SELECT * from TableA LEFT JOIN TableB ON (ID1=I2)
对我来说,“OUTER”关键字就像线路噪声 – 它不添加任何附加信息,只是混合sql.在我知道的大多数RDBMS中甚至是可选的.那么为什么人们还在写呢?是习惯吗可移植性? (你的sql是否真的可移植?)还有什么我不知道的?
解决方法
OUTER真的是多余的,正如你写的,因为所有OUTER连接都是LEFT或RIGHT,并且所有的LEFT或RIGHT连接都是OUTER.所以在语法上,它主要是噪音,就像你所说的那样.即使在ISO sql中也是可选的.至于为什么人们使用它,我想有些人认为需要坚持加入是“外”,即使左右关键字已经这样说了.对于这个问题,INNER也是多余的!