gpt4 book ai didi

mysql - SQL的执行顺序

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:23 26 4
gpt4 key购买 nike

这是假设的代码:

select table2.id,table1.email,table1.status,table2.status,table2.term,table4.description
From Table1
Join Table 2 ON table1.id = table2.id
Join Table 3 ON table1.id = table3.id
Left Join table4 on table4.num = table2.num
Where Concat(table2.id,(Concat(table2.year,table2.term))
IN(Select Max(Concat(id,( Concat(year,term))))
From table5
Group by id)
And field1 !='abc'
And field2 !='def'
And field3 !='jkl'
Order By status,id

我想知道这是怎么发生的。 (内部)连接将同时运行并创建一个虚拟表,该表将依次连接到表 #4 ...然后 where 子句将应用于最终结果集?这是正确的吗?

最佳答案

连接的顺序取决于 DBMS 的优化器,它会考虑表统计信息并按照 WHERE 子句的顺序连接表,从选择性最高到最低。这样,它会更有效率,因为我们只扫描对我们重要的数据。某些 DMBS(如 Oracle)允许您指定显式排序(例如 ORDERED 提示)以绕过优化器的排序选择。

关于mysql - SQL的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21503761/

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