就是不在这个范围的意思
select id
from table
where name not exists(select 1
from table
where name = 'aaa')
也许你看不懂这个1的意思,不过在使用EXISTS的时候,通常都会使用1,它代表所查询出来的集合,等同于select name。
整个例子的意思是:查询name不等于aaa的所有ID。
不明白再问我,谢谢!
in是把外表和内表作hash连接,而exists是对外表作loop循环。
确定给定的值是否与子查询或列表中的值相匹配。in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。
具体sql语句如下:
1 SELECT 2 3 FROM 4 `user` 5 WHERE 6 `user`id IN ( 7 SELECT 8 `order`user_id 9 FROM10 `order`
exist是指定一个子查询,检测行的存在。遍历循环外表,然后看外表中的记录有没有和内表的数据一样的。匹配上就将结果放入结果集中。
具体sql语句如下:
1 SELECT 2 `user` 3 FROM 4 `user` 5 WHERE 6 EXISTS ( 7 SELECT 8 `order`user_id 9 FROM10 `order`11 WHERE12 `user`id = `order`user_id
以上就是关于数据库语言 not exists 是什么意思全部的内容,包括:数据库语言 not exists 是什么意思、在SQL语句中,in和exist的区别是什么、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)