我有以下表格。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