ORACLE EXISTS 括号内的用法

loujihou 2017-04-11 11:44:00
现在有一个搞不懂 的事情,就是比如
select A.* FROM A WHERE A EXISTS(SELECT 1 FROM B WHERE A.ID=B.ID)
这个是找到A与B表的ID 相等的字段

但是现在有个疑问就是
select A.* FROM A WHERE A EXISTS(SELECT * FROM B)
括号后面不加where代表什么意思呢?是全表比和minus这种意思一样吗?
...全文
298 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
后面相当于,只要b表有数据,就会返回A表所有的,B表没数据,就一行不返回
落落叶叶无声 2017-04-11
  • 打赏
  • 举报
回复
只见过WHERE EXISTS WHERE A EXISTS 应该不行吧 前面一句相当于表连接。后面的没试过
卖水果的net 2017-04-11
  • 打赏
  • 举报
回复
select A.* FROM A WHERE A EXISTS(SELECT 1 FROM B WHERE A.ID=B.ID) 这个是找到A与B表的ID 相等的字段 对的,有匹配的行,就把 A 的数据查出来 但是现在有个疑问就是 select A.* FROM A WHERE A EXISTS(SELECT * FROM B) 只要表 B 中存在数据,就把 A 的数据全查出来,只要表 B 是没有数据,A 的数据,就全部不查出来
loujihou 2017-04-11
  • 打赏
  • 举报
回复
谢谢各位,我还以为全表比是这个样子呢

3,497

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧