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)

学生とテイクの自然な結合に参加しない、学生とテイクのすべてのタプルを検索するクエリを作成する必要があります。結果は、適切にnullで埋められたstudentとtakeingの両方からのタプルとの単一の関係になります。

私が思いつくことができる唯一のアイデアは、学生/テイクの完全な結合を取得し、自然な結合タプルを削除した後に残っているタプルを保持することです。しかし、私はこれについてどうやって行くのかわかりません。これが私がこれまでに思いついた最良の解決策ですが、行が選択されていません。私はいくつかの結果が得られるはずだとかなり確信しています。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 Takeing)マイナス(SELECT * FROM Student NATURAL INNER JOIN Takeing)

于 2013-03-19T06:06:43.770 に答える