我有一个包含5个表的数据库。
COURSES (***CourseID***, CourseName, Credit)
TEACHERS (***SSN***, Name)
OFFER (***CourseID***,***SSN***)
STUDENTS (***StudentID***, Name, Department)
ENROLL (***StudentID***,***CourseID***, Semester)
我想找出至少招收一名“汽车工程”学生的课程名称。但是,课程也不能由天使提供。我的意思是至少招收一名“汽车工程”学生,而不是由“天使”提供(教授)的课程。
我从另一个问题得到了下面的答案,但我不知道从这里怎么走。
select C.CourseName
from Courses C
-- A student from the selected department is enrolled in this course
where exists (
select 1
from Enroll E
inner join Students S on S.StudentId = E.StudentId
where S.Department = 'Automotive Engineering' and E.CourseID = C.CourseID
)
上面的代码给出了至少招收一名“汽车工程”学生的课程名称,但我如何检查课程是否由“天使”提供?
1条答案
按热度按时间w6lpcovy1#
这个
exists
对至少有一名相关专业的学生参加的课程进行筛选的方法是好的。从现有的查询开始,您可以添加更多的联接,以将课程教师和筛选器带出'Angel'
: