首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于表关联时SQL效率的有关问题

2012-06-09 
关于表关联时SQL效率的问题一般两个表关联我知道常用的有以下三种方法SQL code1:SELECT * FROM A,B WHERE

关于表关联时SQL效率的问题
一般两个表关联我知道常用的有以下三种方法

SQL code
1:SELECT * FROM A,B WHERE A.ID=B.ID AND A.NAME='ASDF'2:SELECT * FROM A INNER OUTER JOIN B ON A.ID=B.ID AND A.NAME='ASDF'3:SELECT * FROM A WHERE A.ID=(SELECT ID FROM B WHERE NAME='ASDF')

请问这三种方法有什么区别,在数据量大的时候哪种更有效呢?

[解决办法]
要看执行计划,一般情况下两者是一样的
[解决办法]
还是要从执行计划分析
[解决办法]
还可以用exists,
一般来说效率是一样的,SQL Server数据库引擎会对查询进行优化
[解决办法]
首先,2,3都是错的

SQL code
2:SELECT * FROM A INNER JOIN B ON A.ID=B.ID AND A.NAME='ASDF'3:SELECT * FROM B WHERE B.ID IN (SELECT ID FROM A WHERE NAME='ASDF')  --这个结果字段是不同的
[解决办法]
第二种是错误的,
SQL code
SELECT * FROM A INNER JOIN B ON A.ID=B.ID AND A.NAME='ASDF'
[解决办法]
SQL code
SELECT * FROM A INNER JOIN B ON A.ID=B.ID WHERE A.NAME='ASDF'/*常规这个写法*/
[解决办法]
用连接写法吧

热点排行