sql总exists是通过什么来评判存在与否

sql:select*fromemployeesswherenotexists(select1fromdept_empdwhered.emp_no=s.emp_no)
内表s:外表d:网上对exists的解释:exists是对外表作loop循环,每次loop循环再对内表进行查询我的疑问:外表是通过其中一个字段去loop内表,只要有一个字段存在,就是存在?还是外表是通过整条数据去跟内表匹配,是否存在,如果是这样,是不是不应是select1总之,没想明白,exists到底是用什么来判断是否存在的,一行记录,一行记录的一个字段,还是其他?
翻阅古今
浏览 405回答 2
2回答

Qyouu

exists指定一个子查询,检测行的存在。遍历循环外表,然后看外表中的记录有没有和内表的数据一样的。匹配上就将结果放入结果集中。具体sql语句如下:SELECT`user`.*FROM`user`WHEREEXISTS(SELECT`order`.user_idFROM`order`WHERE`user`.id=`order`.user_id)使用exists关键字进行查询的时候,首先,我们先查询的不是子查询的内容,而是查我们的主查询的表,也就是说,我们先执行的sql语句是:SELECT`user`.*FROM`user`然后,根据表的每一条记录,执行以下语句,依次去判断where后面的条件是否成立:EXISTS(SELECT`order`.user_idFROM`order`WHERE`user`.id=`order`.user_id)如果成立则返回true不成立则返回false。如果返回的是true的话,则该行结果保留,如果返回的是false的话,则删除该行,最后将得到的结果返回。也可以和IN对比来分辩认识它们Sql语句中IN和exists的区别及应用
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript