SELECT *
FROM employees
WHERE NOT EXISTS(/2,如果不满足1中判定条件,则外表employees的这个元组就作为结果集的一条记录/
SELECT *
FROM dept_emp
/1.判断外表employees的每个元组存在于内表dept_emp的条件/
WHERE employees.emp_no=dept_emp.emp_no
)
/*等价于下面这个方法:
SELECT *
FROM employees
WHERE employees.emp_no NOT IN (
SELECT dept_emp.emp_no
FROM dept_emp
)
*/
exists对外表用loop逐条查询,每次查询都会查看exists的条件语句,当 exists里的条件语句能够返回记录行时(无论记录行是的多少,只要能返回),条件就为真,返回当前loop到的这条记录;反之如果exists里的条 件语句不能返回记录行,则当前loop到的这条记录被丢弃,exists的条件就像一个bool条件,当能返回结果集则为true,不能返回结果集则为 false。