现在有一个搞不懂 的事情,就是比如
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这种意思一样吗?
...全文
2984打赏收藏
ORACLE EXISTS 括号内的用法
现在有一个搞不懂 的事情,就是比如 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这种意思一样吗?
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 的数据,就全部不查出来