gpt4 book ai didi

MySQL Join 子句与 WHERE 子句

转载 作者:IT老高 更新时间:2023-10-29 00:02:55 25 4
gpt4 key购买 nike

下面两种方式做的子句有什么区别?

SELECT * FROM table1 INNER JOIN table2 ON (
table2.col1 = table1.col2 AND
table2.member_id = 4
)

我将它们与基本查询和EXPLAIN EXTENDED 进行了比较,没有发现任何区别。我想知道这里是否有人发现了更复杂/处理密集型环境中的差异。

SELECT * FROM table1 INNER JOIN table2 ON (
table2.col1 = table1.col2
)
WHERE table2.member_id = 4

最佳答案

使用 INNER 连接,这两种方法给出相同的结果,并且应该产生相同的查询计划。

但是,JOIN(描述两个表之间的关系)和 WHERE 子句(从结果集中删除行)之间存在语义差异。这种语义差异应该告诉您使用哪一个。虽然它对结果或性能没有影响,但选择正确的语法将有助于您的代码的其他读者更快地理解它。

请注意,如果您使用外连接而不是内连接,可能会有所不同。例如,如果您将 INNER 更改为 LEFT 并且连接条件失败,如果您使用第一种方法,您仍然会得到一行,但如果您使用第二种方法,它将被过滤掉(因为 NULL 不等于 4)。

关于MySQL Join 子句与 WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4160637/

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