gpt4 book ai didi

mysql - SQL:我应该使用 INNER JOIN 条件作为 WHERE 条件吗?

转载 作者:行者123 更新时间:2023-11-30 00:43:30 26 4
gpt4 key购买 nike

我应该使用 INNER JOIN 条件作为 WHERE 条件吗?考虑这两个示例查询来解释问题:

SELECT t1.*, t2.* 
FROM table1 AS t1
INNER JOIN table2 AS t2
ON t1.id = t2.foreign_key
WHERE t1.year < 2014

并且没有 WHERE 子句

SELECT t1.*, t2.* 
FROM table1 AS t1
INNER JOIN table2 AS t2
ON t1.id = t2.foreign_key
AND t1.year < 2014

由于 JOIN 类型为 INNER,因此两个查询都将产生典型的结果集。

就性能而言,哪个更好?

最佳答案

通常性能应该相似,因为两个查询应该以相同的方式执行(如果查询优化器很好)。

我通常使用 WHERE 子句,因为有简单的连接条件,确保使用索引扫描(如果有适当的索引)。

例如,如果您的查询略有变化(请参阅条件顺序):

SELECT t1.*, t2.* 
FROM table1 AS t1
INNER JOIN table2 AS t2
ON t1.year < 2014
AND t1.id = t2.foreign_key

某些优化器引擎可能决定不在 t2.foreign_key 列上使用索引。

关于mysql - SQL:我应该使用 INNER JOIN 条件作为 WHERE 条件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21578343/

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