问题:查询没有学生选的课程信息
表dbo.Student
列名 | 数据类型 |
---|---|
Stu_id | varchar(10) |
Stu_name | varchar(10) |
Stu_sex | varchar(2) |
Birthdate | datetime |
Phone | varchar(8) |
Address | varchar(100) |
表dbo.Course
列名 | 数据类型 |
---|---|
Course_id | varchar(4) |
Course_name | varchar(20) |
Course_hour | int |
Introduce | varchar(200) |
表dbo.StudentCourse
列名 | 数据类型 |
---|---|
Stu_id | varchar(10) |
Course_id | varchar(4) |
Grade | decimal(9, 2) |
解法一:子查询查找表StudentCourse中被选的课程号;父查询表Course中的课程号不包括子查询结果
SELECT DISTINCT Course.Course_id,Course_name
FROM Course
WHERE Course.Course_id NOT IN(SELECT Course_id FROM StudentCourse)
解法二:这个解法将NOT IN换成了NOT EXISTS
SELECT DISTINCT Course.Course_id,Course.Course_name
FROM Course
WHERE NOT EXISTS
(SELECT * FROM StudentCourse WHERE StudentCourse.Course_id=Course.Course_id)