提问:SQL数据库:查询没有选课的学生信息

img


select 所属院系,班级名称,学号,姓名,性别
from 班级表,学生表
where 学号 not in (select 学号
from 成绩表)
order by 所属院系,姓名
为什么最后出来的数据比图片的多很多

因为你班级表和学生表没有关联起来,造成了笛卡尔积,每个学生都分配到了所有班级。加上关联条件就没问题了

select 所属院系,班级名称,学号,姓名,性别
from 班级表,学生表
where 班级表.班级编号=学生表.班级编号 
and  学号 not in (select 学号
from 成绩表)
order by 所属院系,姓名