MySQL JOIN的默认默认行为是INNER或OUTER?
因此,我在过去的一个小时里一直在互联网上浏览,阅读并寻找这个简单问题的明确答案。
MySQL中的默认JOIN是什么?
SELECT * FROM t1 JOIN t2
一样吗
SELECT * FROM t1, t2OR
SELECT * FROM t1 INNER JOIN t2
还有一个相关的问题,当您使用“ WHERE”子句时,它与JOIN或INNER JOIN相同吗?
现在,我认为独立的JOIN与使用逗号和WHERE子句相同。
回答:
在MySQL中,写JOIN
不合格的隐含含义INNER JOIN
。换句话说,INNER
in INNER
JOIN是可选的。INNER
而CROSS
在MySQL的同义词。为了清楚起见,我写JOIN
或者INNER
JOIN如果我有一个连接条件,CROSS JOIN
如果我没有条件。
文档中介绍了允许的联接语法。
现在,我认为独立的JOIN就是(使用)逗号和WHERE子句。
效果是一样的,但背后的历史却不同。逗号语法来自ANSI-89标准。但是,此语法存在许多问题,因此在ANSI-92标准中引入了JOIN关键字。
我强烈建议您 使用JOIN语法而不是逗号。
T1 JOIN T2 ON ...
比更具可读性T1, T2 WHERE ...
。- 它更易于维护,因为表关系和过滤器已明确定义,而不是混合在一起。
- 与逗号语法相比,JOIN语法更容易转换为OUTER JOIN。
- 由于优先规则,在同一条语句中混合使用逗号和JOIN语法会产生奇怪的错误。
- 由于忘记了连接子句,因此在使用JOIN语法时不太可能意外地创建笛卡尔乘积,因为连接子句写在连接的旁边,并且很容易看出是否缺少连接子。
以上是 MySQL JOIN的默认默认行为是INNER或OUTER? 的全部内容, 来源链接: utcz.com/qa/436437.html