这个sql语句:where exists (select 1 from table22 b where b.id2 = a.id1)是什么意思啊
updatetable11aseta.name1=(selectb.name2fromtable22bwherea.id1=b.id2)whereexists(selec...
update table11 a set a.name1 = (select b.name2 from table22 b where a.id1 = b.id2)
where exists (select 1 from table22 b where b.id2 = a.id1);
这个sql语句我能看懂的是根据表b做表a的字段更新,但是没看懂:where exists (select 1 from table22 b where b.id2 = a.id1)
表示什么意思,什么是exists,什么是select 1 from table22 b,表b中没有1这个字段啊
另外如果我不加where exists (select 1 from table22 b where b.id2 = a.id1)这个不行吗?
哪位好心的朋友能指点一下吗,十分感谢。 展开
where exists (select 1 from table22 b where b.id2 = a.id1);
这个sql语句我能看懂的是根据表b做表a的字段更新,但是没看懂:where exists (select 1 from table22 b where b.id2 = a.id1)
表示什么意思,什么是exists,什么是select 1 from table22 b,表b中没有1这个字段啊
另外如果我不加where exists (select 1 from table22 b where b.id2 = a.id1)这个不行吗?
哪位好心的朋友能指点一下吗,十分感谢。 展开
展开全部
exists 表示存在的意思。
这个语句用in的话就是【update table11 a set a.name1 = (select b.name2 from table22 b where a.id1 = b.id2) where a.id1 in (select b.id2 from table22 b );】
oracle为了提高效率,尽量都用exists,至于select1和select*是一样的。看个人习惯。
这个语句用in的话就是【update table11 a set a.name1 = (select b.name2 from table22 b where a.id1 = b.id2) where a.id1 in (select b.id2 from table22 b );】
oracle为了提高效率,尽量都用exists,至于select1和select*是一样的。看个人习惯。
追问
朋友您好:如果我不加
where exists (select 1 from table22 b where b.id2 = a.id1)
或
where a.id1 in (select b.id2 from table22 b )
就不行吗,为什么需要加这个啊,十分感谢
追答
可以啊,但是oracle为了提高效率,in都用exists代替,not in用not exists。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询