in 和 exists 已经成为我们日常查询时候的常客了。很多时候他们2个都是可以互通实现的,但是,无论兄弟怎么亲,还是会有那么一些差别的。先搞个测试表CREATE TABLE #Tmp1(ID INT,Col1 NVARCHAR(50))CREATE TABLE #Tmp2(I ...
in 和 exists 已经成为我们日常查询时候的常客了。很多时候他们2个都是可以互通实现的,但是,无论兄弟怎么亲,还是会有那么一些差别的。
先搞个测试表
CREATE TABLE #Tmp1(ID INT,Col1 NVARCHAR(50))CREATE TABLE #Tmp2(ID INT,T1ID INT,Col1 NVARCHAR(50),Col2 NVARCHAR(50))INSERT INTO #Tmp1 ( ID, Col1 )VALUES ( 1, N'AAA'),( 2, N'BBB'),( 3, N'CCC'),( 4, N'DDD')INSERT INTO #Tmp2 ( ID, T1ID, Col1, Col2 )VALUES ( 1, 1, N'aa1',N'aa!!'),( 5, 1, N'aa2',N'vv!!'),( 6, 3, N'cc3',N'VV!!')
2 使用 in 的注意事项。
比方说将上面一个语句改成一个相关子查询,在子查询里面引用了#Tmp1 的ID,然后就变成以下的结果
SELECT * FROM #Tmp1 a WHERE ID IN (SELECT T1ID FROM #Tmp2 WHERE a.ID = T1ID)ID Col1----------- --------------------------------------------------1 AAA3 CCC
原标题:今天说一下where 中 exists 和 in 里面的一些区别
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。