gpt4 book ai didi

sql - 是在 ON 子句中添加更多逻辑更好,还是只包含最少的必要逻辑?

转载 作者:行者123 更新时间:2023-12-02 15:59:28 26 4
gpt4 key购买 nike

考虑到这两个查询:

Select t1.id, t2.companyName 
from table1 t1
INNER JOIN table2 t2 on t2.id = t1.fkId
WHERE t2.aField <> 'C'

或者:

Select t1.id, t2.companyName 
from table1 t1
INNER JOIN table2 t2 on t2.id = t1.fkId and t2.aField <> 'C'

两者之间有明显的区别吗?在我看来,子句“t2.aField <> 'C'”将在 t2 中满足连接条件的每一行上运行。我错了吗?

更新:我在 SQL Server 中执行了“包括实际执行计划”。这两个查询是相同的。

最佳答案

我更喜欢使用连接标准来解释表如何连接在一起。所以我会将附加子句放在 where 部分。

我希望(尽管我没有统计数据)SQL Server 能够足够聪明地找到最佳查询计划,无论您使用什么语法。

但是,如果您的索引也包含 id 和 aField,我建议将它们放在内部联接条件中。

在这 2(或 3)个场景中查看查询计划并看看会发生什么会很有趣。好问题。

关于sql - 是在 ON 子句中添加更多逻辑更好,还是只包含最少的必要逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/809052/

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