当前位置: 代码迷 >> Sql Server >> 请问sql写法,关于使用 exists 代替 in 的有关问题
  详细解决方案

请问sql写法,关于使用 exists 代替 in 的有关问题

热度:416   发布时间:2016-04-24 10:37:57.0
请教sql写法,关于使用 exists 代替 in 的问题
本帖最后由 Pc498471249 于 2014-05-29 23:50:44 编辑
关于这个问题我在网上搜索了一下,基本上都是两个表之间进行的sql子查询

select * from table1 where id in (select id1 from table2)                                  --源写法

select * from table1 where exists (select 1 from table2 where id1=id)             --新写法
 


可是我的情况是这样的。我需要in的不是一个表,而是一系列具体的值

select * from table1 where id in (1,2,3,4,5)

请问这种情况如何用exists 的语法来代替呢- -
------解决方案--------------------
这个不需要代替了吧
------解决方案--------------------
如果你这一系列具体的值比较多的话,把它做成一个表跟你的table JION起来,效果会好点
------解决方案--------------------
你的这个可以不用EXISTS了 可以用OR
SELECT * FROM TB WHERE ID=1 OR ID=2...
------解决方案--------------------
引用:
关于这个问题我在网上搜索了一下,基本上都是两个表之间进行的sql子查询

select * from table1 where id in (select id1 from table2)                                  --源写法

select * from table1 where exists (select 1 from table2 where id1=id)             --新写法
 


可是我的情况是这样的。我需要in的不是一个表,而是一系列具体的值

select * from table1 where id in (1,2,3,4,5)

请问这种情况如何用exists 的语法来代替呢- -



参考 http://blog.csdn.net/orchidcat/article/details/6267552
------解决方案--------------------
真的不明白为什么还用exists呢,直接in更好啊或者是or
  相关解决方案