首页 > 数据库 > > sql语句的NOT IN
查询没学过“叶平”老师课的同学的学号、姓名:
我的语句:
SELECT DISTINCT s.id, s.no,s.name FROM student s,teacher t,course c,score
WHERE s.id NOT IN
(SELECT score.student_id WHERE score.course_id IN
(SELECT c.id WHERE c.teacher_id IN
(SELECT t.id WHERE t.teacher_name = '叶平')))
为什么没有把学过‘叶平’老师课的给排除掉?
这个没有not的就可以查处来学过‘叶平’老师课程的学生,加了not却没有排除掉这些
SELECT DISTINCT s.id, s.no,s.name FROM student s,teacher t,course c,score
WHERE s.id IN
(SELECT score.student_id WHERE score.course_id IN
(SELECT c.id WHERE c.teacher_id IN
(SELECT t.id WHERE t.teacher_name = '叶平')))
不知道为什么?

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2005/viewspace-3145539/ ,如需转载,请注明出处,否则将追究法律责任。