0

这是架构:

Student-schema =(studentnum, name, standing, gpa, major)
Class-schema = (schedulenum, semester, department, classnum, days, time, place, enrollment)
Instructor-schema = (name, department, office)
Teaches-schema = (name, schedulenum, semester)
Taking-schema = (studentnum, schedulenum, semester, grade)

我必须编写一个查询来查找学生和服用中的所有元组,这些元组不参与学生和服用的自然连接。结果是与来自 student 和 take 的元组的单一关系,并适当地填充了空值。

我能想出的唯一想法是获得学生/录取的完全连接,然后保留在删除自然连接元组后剩下的元组。但我不知道该怎么做。这是迄今为止我提出的最佳解决方案,但我没有选择任何行。我很确定我应该有一些结果。我只是在寻找 SQL 专业人士可能愿意分享的任何建议。

SELECT*
FROM student full join taking ON student.studentnum = taking.studentnum
MINUS
SELECT*
FROM student,taking
WHERE student.studentnum = taking.studentnum;
4

1 回答 1

1

此 sql 代码在 Oracle 中有效!您应该替换完全外部联接和自然联接以便在您的 DBMS 中工作。

(SELECT * FROM student NATURAL FULL OUTER JOIN Take) MINUS (SELECT * FROM student NATURAL INNER JOIN Take)

于 2013-03-19T06:06:43.770 回答