gpt4 book ai didi

mysql - 什么是默认的 MySQL JOIN 行为,INNER 或 OUTER?

转载 作者:IT老高 更新时间:2023-10-28 12:51:48 27 4
gpt4 key购买 nike

所以我在过去的一个小时里一直在浏览互联网,阅读并寻找这个简单问题的明确答案。

MySQL 中默认的 JOIN 是什么?

SELECT * FROM t1 JOIN t2

是一样的

SELECT * FROM t1, t2

OR

SELECT * FROM t1 INNER JOIN t2

还有一个相关的问题,当你使用“WHERE”子句时,它与JOIN或INNER JOIN一样吗?

现在我认为独立的 JOIN 与使用逗号和 WHERE 子句相同。

最佳答案

在 MySQL 中,JOIN 不合格意味着 INNER JOIN。换句话说,INNER JOIN 中的INNER 是可选的。 INNERCROSS 在 MySQL 中是同义词。为清楚起见,如果我有连接条件,我写 JOININNER JOIN,如果我没有条件,我写 CROSS JOIN

documentation 中描述了允许的连接语法。 .


Right now I'm thinking a stand-alone JOIN is nothing more than (identical to) using commas and WHERE clauses.


效果相同,但背后的历史不同。逗号语法来自 ANSI-89 标准。但是这种语法存在许多问题,因此在 ANSI-92 标准中引入了 JOIN 关键字。

我强烈建议您始终使用 JOIN 语法而不是逗号。

  • T1 JOIN T2 ON ...T1, T2 WHERE ... 更具可读性。
  • 它更易于维护,因为表关系和过滤器被明确定义而不是混合在一起。
  • JOIN 语法比逗号语法更容易转换为 OUTER JOIN。
  • 由于优先规则,在同一语句中混合使用逗号和 JOIN 语法可能会产生奇怪的错误。
  • 在使用 JOIN 语法时,由于忘记了连接子句,不太可能意外创建笛卡尔积,因为连接子句写在连接旁边,很容易看出是否缺少。

关于mysql - 什么是默认的 MySQL JOIN 行为,INNER 或 OUTER?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4418776/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com