https://www.cnblogs.com/flzs/p/11542181.html
https://www.cnblogs.com/min525/p/15106944.html
EXISTS = IN,意思相同不过语法上有点点区别 A EXITST B , A表符合条件的数据, 在B表存在
NOT EXISTS = NOT IN ,意思相同不过语法上有点点区别 A NOT EXITST B , A表符合条件的数据, 在B表不存在
EXISTS 先在主表中取出要的结果,然后去后面循环检查是否 存在或者不存在
exists ( 返回结果集 , 为真)
not exists (不返回结果集, 为真)
SELECT e.* FROM emp e where EXISTS (SELECT d.* FROM dept d WHERE d._no = 'd002' AND e.d_id = d.id)
1. 先把exists前的查询语句 的结果集A查询出来
2. 再把 exists子查询 的结果集B查询出来
3. 根据 关联条件 e.id = d.id ,遍历结果集A 和 B , 找匹配的记录,f把匹配上的记录 放到临时表 ,展示出来