这个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)这个不行吗?
哪位好心的朋友能指点一下吗,十分感谢。
展开
 我来答
百度网友e23057c
2015-06-12 · TA获得超过184个赞
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:63.1万
展开全部
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*是一样的。看个人习惯。
追问
朋友您好:如果我不加
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。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式