sql多字段Notin
A. sql in和not in集合运算只能用于一个字段吗
可以啊,各个字段分别用这个关键字作为判断条件。比如
select * from tabname
where f1 in ('A', 'B', 'C')
and f2 not in ('MM', 'QQ');
B. SQL每日一练——第2天:Where in 和Not in
SQL每日一练——第2天:Where in 和Not in
学习SQL,每日一练,掌握知识,学以致用。刷题是最佳途径,能帮助快速掌握技能,为将来就业打下坚实基础。
题目描述:运营需调研北京大学、复旦大学和山东大学的学生,需取出相关数据。
示例:user_profile
查询结果应包含device_id,gender,age,university,gpa。
题解分析:使用in(字段...)和not in(字段..)关键字。
推荐使用in增加复用性。
查询示例:select device_id,gender,age,university,gpa from user_profile where university in('北京大学','复旦大学','山东大学');
where字句支持多种使用场景。
解决方案与题解示例:输入示例,输出结果。
总结:编程提升的关键在于练习,注重学与刷题并重,不断实践提高编程思维与能力。
C. sql语句,select not in
把 where之前的order by 放在语句最后。
还有not in 里面不需要order by了
D. sql 语句中in ,not in
如果系统不自动优化,并且IN的结果很多,那么有可能IN和NOT IN的效率低些。
所有的IN都可以转换为EXISTS,同样NOT IN可以转换为NOT EXISTS,下面说明IN转换为EXISTS的方法,NOT的类似:
IN的语句:
SELECT * FROM A WHERE F IN (SELECT F FROM B)
可以转换为如下的EXISTS语句:
SELECT * FROM A WHERE EXISTS
(SELECT * FROM B WHERE A.F=B.F)
上面转换的说明:两个WHETE都可能有更多都条件,那么直接AND在相应的地方即可。另外表A和B的关联字段可能名字表同,也司没关系的。
