语法解释
语法
SELECT column1 FROM t1 WHERE [conditions] and EXISTS (SELECT * FROM t2 );
说明
括号中的子查询并不会返回具体的查询到的数据,只是会返回true或者false,如果外层sql的字段在子查询中存在则返回true,不存在则返回false
即使子查询的查询结果是null,只要是对应的字段是存在的,子查询中则返回true
执行过程
1、首先进行外层查询,在表t1中查询满足条件的column1
2、接下来进行内层查询,将满足条件的column1带入内层的表t2中进行查询,
3、如果内层的表t2满足查询条件,则返回true,该条数据保留
4、如果内层的表t2不满足查询条件,则返回false,则删除该条数据
5、最终将外层的所有满足条件的数据进行返回
总结
上面我们简单介绍了一下平时我们比较少用到的一个exists的关键字,通过一些使用的实例,大家也可以基本上了解了它的使用方法,在以后的日常工作中,我们在碰到一些查询问题的时候,这个时候就有了更加多样化的选择方案啦,希望这篇文章对大家有帮助,谢谢