我想使用exists来判断表中某个字段是否存在于某个范围,但是exists的使用方法是:
select * from A where exists (select 1 from B where A.id = b.id),也就是必须要一个相关的表B,才能使用exists查询。我目前有的是一组这种形式的数据:(1,4,6,3,5),而不是一个表,问一下想查看A的id是否在这个范围中,怎么写SQL呢?
不能用in关键字,因为id字段是有索引的。
我写的数据:(1,4,6,3,5)只是举个例子,实际的数据比这更复杂,几千条,用in也可以,但是不会用到索引,效率会很低
Oracle中如何将数据用于exists
答案:2 悬赏:80 手机版
解决时间 2021-03-07 23:38
- 提问者网友:浮克旳回音
- 2021-03-07 03:47
最佳答案
- 五星知识达人网友:酒醒三更
- 2021-03-07 04:44
你的数据明显就是可以使用 in 的,又不能使用 in ,
只好 把这一组数据写到一个表里,这样就可以不用 in 而用 exists 了。
几千条数据,你做一个临时表B,把数据写入临时表B里,
然后用 select * from A where exists (select 1 from B where A.id = b.id)
只好 把这一组数据写到一个表里,这样就可以不用 in 而用 exists 了。
几千条数据,你做一个临时表B,把数据写入临时表B里,
然后用 select * from A where exists (select 1 from B where A.id = b.id)
全部回答
- 1楼网友:你可爱的野爹
- 2021-03-07 05:43
比如 a,b 关联列为 a.id = b.id,现在要取 a 中的数据,其中id在b中也存在:
select * from a where exists(select 1 from b where a.id = b.id)
或者:
现在要取 a 中的数据,其中id在b中 不存在:
select * from a where not exists(select 1 from b where a.id = b.id)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯