一、in、not in
用法:
1.doctors 表 的 id 存在 1,12,45,78 时,查询出来
select * from doctors where id in (1,12,45,78)
2.doctors 表 除了 id 为 1,12,45,78 的其它,查询出来
select * from doctors where id not in (1,12,45,78)
个人经验:当能确定范围为是固定的值时推荐使用,如医生的职位用 1(教授),2(主任医师),3(硕士研究生)等数字表示时,可这样使用 select * from doctors where id not in (1,2).
如果不能确定值,需要其他表查询得到结果,如:select * from doctors where id in (select id from studnet as s where s.doctorsId != null).,推荐使用 exists
二、exists、not exists
select * from doctors where exists (select id from studnet as s where s.doctorsId != null)
select * from doctors where not exists (select id from studnet as s where s.doctorsId != null)