发布网友 发布时间:2022-04-08 02:29
共4个回答
懂视网 时间:2022-04-08 06:50
select * from Student 2 where CityCode 3 in 4 (select Code from City)内连接方式:
sql语句如下:
1 select a.* from 2 Student a inner join City b 3 on a.CityCode=b.Code
二者的检索结果一致,如图:
对于简单检索而言,尤其是在数据量小的情况下,二者并无差异,可能会引起同学的质疑,凭什么说连接的方式比子查询的方式要好,拿不出证据,老子弄死你们。
于是,需要借助SQL Server的性能优化指标,在SQL Server查询语句之前,添加如下两行语句即可,sql语句如下:
1 set statistics time on 2 set statistics io on
然后,打开结果标签右侧的消息标签,这是内连接的消息:
这是子查询的消息:
注意在子查询中City表逻辑读取了8次,而连接中只有1次。不要在意时间,因为数据量较小,所以子查询的时候更快一些,等数据量上去,你就懂了。
优化子查询sql语句为内连接
标签:
热心网友 时间:2022-04-08 03:58
有些情况是不能用内连,比如子句中要选择的字段有重复值,改成用inner join查询出来的就会出现偏差热心网友 时间:2022-04-08 05:16
一般都说都是可以相互转换的,你不妨把SQL语句拿出来看看热心网友 时间:2022-04-08 06:51
那要看你select的情况