SQL'WHERE'与'ON'(内部连接)[重复]

Posted

技术标签:

【中文标题】SQL\'WHERE\'与\'ON\'(内部连接)[重复]【英文标题】:SQL 'WHERE' versus 'ON' (inner join) [duplicate]SQL'WHERE'与'ON'(内部连接)[重复] 【发布时间】:2013-04-18 14:41:01 【问题描述】:

在执行 SQL 查询时,

“WHERE”和“ON”之间的性能是否有任何显着(或根本没有)差异?

我知道对于 LEFT JOIN 或 RIGHT JOIN,两者之间的结果集存在显着差异。

INNER JOIN 怎么样?

对我的每个选择都使用“ON”而不是最后使用“WHERE”有什么缺点吗?

【问题讨论】:

你有没有尝试到search? It's the first result on Google, and it's even right on this site。 :( 不,但请使用 ON 但不要使用IN 运算符;在这种情况下,JOIN 会快很多... 这是另一个被高度评价的possible dupe 我认为这里有一个类似的帖子,解释得很好:***.com/questions/1018822/… 【参考方案1】:

在性能方面,它们应该是相同的。但是,请参阅this 文章,了解行业资深人士对可读性和维护友好性的看法。

虽然旧式连接仍然有效,但您不能执行 outer join anymore

【讨论】:

【参考方案2】:

两者的执行计划相同。不过很多人更喜欢使用ON

【讨论】:

以上是关于SQL'WHERE'与'ON'(内部连接)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

内部连接与 MySQL 的区别

MYSQL - 更新/内部连接 ​​[重复]

从内部连接更新列[重复]

pyspark中的内部反连接[重复]

JDBC内部连接java.sql.SQLException:未选择数据库[重复]

没有on子句的连续连接[重复]