在阅读甲骨文书时,我很难理解条款Exists。这是我从书中拍的3张照片。
这是使用IN子句的第一个sql语句,我很容易理解它。
这是使用EXISTS子句的第二条sql语句,我不明白为什么在DEPTNO> 20的情况下为什么它返回所有行。
这是第三条sql语句,它们与第一条sql语句具有相同的行,它需要两个表的额外连接,我无法推理。
我尝试了Google“EXISTS ORACLE”,但大部分页面都在解释EXISTS和IN之间的区别,但没有解释EXISTS的工作原理。你们要麻烦解释一下吗?
最佳答案
这是有关这两种方法以及如何决定使用哪一种方法的详细说明:
http://www.techrepublic.com/article/oracle-tip-understand-the-difference-between-in-and-exists-in-subqueries/5297080
存在检查子查询是否返回结果。基本上,如果要接受子查询并单独执行,则返回至少一行,则条件为true。第三个查询添加了第二个条件,该条件将子查询链接到父查询,因此它检查特定人员的部门是否具有deptno> 20
关于sql - EXISTS在Oracle中如何工作,它与IN有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8875355/