not exists和not in的区别
时间: 2023-04-26 09:00:04 浏览: 96
sql in,exists,not in,not exists区别
not exists和not in都是用于SQL语句中的条件判断,但它们的作用不同。
not exists用于判断一个子查询是否为空,如果为空则返回true,否则返回false。例如:
SELECT * FROM table1 WHERE NOT EXISTS (SELECT * FROM table2 WHERE table1.id = table2.id);
这个语句的意思是从table1中选择所有不在table2中的记录。
not in则是用于判断一个值是否不在一个集合中,如果不在则返回true,否则返回false。例如:
SELECT * FROM table1 WHERE id NOT IN (1, 2, 3);
这个语句的意思是从table1中选择所有id不是1、2、3的记录。
因此,not exists和not in的区别在于它们判断的对象不同。not exists判断的是一个子查询是否为空,而not in判断的是一个值是否不在一个集合中。
阅读全文