gpt4 book ai didi

sql - 哪个效率高?使用子查询或连接表查询

转载 作者:太空狗 更新时间:2023-10-30 01:50:17 30 4
gpt4 key购买 nike

这里有两个相同目的的查询例子(在这个例子中,我想罚款来自 Patriks 居住的同一个城市的推销员。)

select * 
from salesman
where salesman.city =
( select city
from salesman
where salesman_name='Patriks'
);

select s1.* 
from salesman s1,salesman s2
where s1.city=s2.city
and s2.salesman_name='Patriks';

哪个更好或更有效,为什么?(我知道这是一个小例子,但我想弄清楚,这在复杂情况下和大型数据库中会很好。)

最佳答案

一般的经验法则:

如果使用子查询,则强制Oracle使用一定的执行路径(即必须先执行子查询才能执行外层查询)

如果您使用连接,Oracle 可以自由选择它认为最有效的路径。

因此,我总是会通过子查询进行连接。 YMMV.

关于sql - 哪个效率高?使用子查询或连接表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9157097/

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