0

作为我的 SQL 课程的一部分(我只是一个新手),我有一个基于学生和测试的数据库,他们可以作为学习课程的一部分参加。

所以我有一张学生表、一张测试表、一张作者表、一张与测试相关的问题表等。

一项任务要求我创建各种视图,例如

此视图显示已通过的测试实例:

CREATE OR REPLACE VIEW vuStudentsPassedAnyTest
AS 
SELECT outer.passing_grade,s.firstname, s.lastname, h.test_id,h.student_id,h.score
FROM test_history h,students s,test_id outer
WHERE h.student_id=s.student_id 
AND outer.test_id=h.test_id
AND score > = (SELECT passing_grade
                 FROM test_id inner
                 WHERE inner.test_id=h.test_id);

或者这个显示从未被问过的问题

SELECT question_id
FROM questions
MINUS
SELECT question_id
FROM student_answer_history;

如此直接的观点本身,总共大约有 5 个。

这是我正在努力的部分:

作业的第二部分要求我使用分层检索更有效地重新创建这些视图。

我没有看到任何明显的层次结构,除了一个测试可以由许多学生通过,或者一个学生可以通过几个测试。

我不认为我会在这些视图中使用分层查询,除非我被要求这样做......而且因为没有包含父 id 类型列的表,我正在努力解决如何完成它。

我很清楚原理及其工作原理,比如使用 hr 员工表,其中employee_id 和 manager_id 代表明确的父/子关系,我找到的大多数示例都可以参考,但是谁能给我一个指导如何将其纳入这些观点?

谢谢!!

4

0 回答 0