我有以下表格。SQL命令执行除法
STUDENT(ID, FIRST_NAME, LAST_NAME, MAJOR)
INSTRUCTOR(ID, FIRST_NAME, LAST_NAME, DEPARTMENT, SALARY)
COURSE(ID, COURSE_NAME, DESCRIPTION)
COURSE_OFFERING(ID, COURSE_ID, INSTRUCTOR_ID, SEMESTER)
GRADE(STUDENT_ID, COURSE_OFFERING_ID, GRADE)
查找所有参加过爱因斯坦授课的所有学生的姓名。
,我使用的SQL命令是
select STUDENT_ID
from grade where not exists
(select grade.COURSE_OFFERING_ID from grade
where grade.COURSE_OFFERING_ID not in
(
select course_offering.ID
from instructor join course_offering
where instructor.ID = course_offering.INSTRUCTOR_ID
and instructor.FIRST_NAME = 'Einstein')
);
请解释一下我在哪里犯了一个错误,还是有在SQL执行部门的任何其他方式?
我没有看到任何分裂吗?为什么你使用不存在,不在?你应该能够使用单一的积极关系而不是两个否定的关系。 –
我必须找到所有课程的学生。所以它下属权利?当我把它放在关系代数中时,首先我会找到爱因斯坦教授的课程,然后找到所有的学生,我需要以第一个结果来划分。所以我想知道如何将关系代数划分在SQL中? – mukund