为什么LEFT INNER JOIN被弃用、移除或不再推荐使用?
为什么
LEFT INNER JOIN被弃用、移除或不再推荐使用? 首先,这是一组逻辑矛盾的语法组合:
LEFT JOIN(左外连接)的核心是保留左表所有行,哪怕右表无匹配记录;而INNER JOIN(内连接)只保留两表匹配的行。将两者组合,语义完全冲突,数据库无法明确执行逻辑。- 早期部分数据库允许这种写法,但实际执行时会忽略其中一个关键字,行为不可预期——不同数据库可能选择不同优先级,比如有的按
INNER处理,有的按LEFT OUTER处理,引发跨库兼容性问题。
其次,它不符合SQL官方标准:
- SQL标准中,连接类型的正确写法是先指定连接类型(
INNER/OUTER),再指定方向(LEFT/RIGHT),比如LEFT OUTER JOIN(可省略OUTER写为LEFT JOIN)。LEFT INNER JOIN属于非标准错误写法,不被规范认可。
最后,数据库厂商逐步淘汰这种写法,是为了强制语法规范性,避免开发者写出语义模糊、行为不可控的SQL,减少问题排查成本,同时保证代码的可移植性。
内容的提问来源于stack exchange,提问作者오준후
相关产品推荐
相关产品推荐

