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

请问left outer join和no in的不同

2012-04-18 
请教left outer join和no in的不同not InSQL codeselect * from table where id not in (select top 100 i

请教left outer join和no in的不同
not In

SQL code
select * from table where id not in (select top 100 id from table order by id desc)

left outer join
SQL code
select * from table left outer join (select top 100 id as tId from table order by id desc) t on t.tId = table.id where t.tId is null


两句的效果是一样的,效率上来说哪个比较好..手上没有大数据库进行测试,有没人帮忙看看

[解决办法]
SQL code
goif OBJECT_ID('tbl')is not nulldrop table tblgocreate table tbl(id int identity(1,1),QQ VARCHAR(10))godeclare @a intset @a=1while @a<=1000000begininsert tblselect ltrim(cast(RAND()*1000000000 as int))set @a=@a+1endselect * from tbl where id not in (select top 100 id from tbl order by id desc)--110万条数据不加任何索引第一次30s,第二次24sselect * from tbl left join (select top 100 id as tId from tbl order by id desc) t on t.tId = tbl.id where t.tId is null--110万条数据不加任何索引第一次24s,第二次24s 

热点排行