创建一个视图显示每一门课程的间接先行课(即先行课的先行课)
时间: 2024-01-10 11:04:17 浏览: 33
您好!针对您的问题,可以尝试以下 SQL 语句来创建视图:
```
CREATE VIEW indirect_prereq AS
SELECT t1.course_id AS course, t2.prereq_id AS indirect_prereq
FROM prereq t1
JOIN prereq t2
ON t1.prereq_id = t2.course_id;
```
这个视图查询使用了自连接(self-join)来获取每个先行课的先行课。我们将先行课表格(prereq)自连接两次,分别使用别名 t1 和 t2,然后通过 t1.prereq_id = t2.course_id 这个条件来获取每个课程的间接先行课。
这个视图的输出结果将会有两列,第一列是每个课程的名称,第二列是该课程的间接先行课名称。
希望这个回答能够帮到您!
相关问题
创建一个视图view 显示每个学生的选课情况 姓名课程名成绩
好的,可以使用以下 SQL 语句创建视图:
```
CREATE VIEW student_course_view AS
SELECT s.name AS student_name, c.name AS course_name, sc.score
FROM student s
JOIN student_course sc ON s.id = sc.student_id
JOIN course c ON sc.course_id = c.id;
```
这个视图将会显示每个学生的选课情况,包括学生姓名、课程名称和成绩。你可以使用以下 SQL 语句查询这个视图:
```
SELECT * FROM student_course_view;
```
希望能对你有所帮助!
创建一个显示学生学号、姓名、课程名、成绩的视图
假设有如下表格:
```
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(255)
);
CREATE TABLE courses (
id INT PRIMARY KEY,
name VARCHAR(255)
);
CREATE TABLE scores (
student_id INT,
course_id INT,
score INT,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES students(id),
FOREIGN KEY (course_id) REFERENCES courses(id)
);
```
可以创建以下视图来显示学生学号、姓名、课程名、成绩:
```
CREATE VIEW scores_view AS
SELECT students.id, students.name, courses.name AS course_name, scores.score
FROM students
JOIN scores ON students.id = scores.student_id
JOIN courses ON courses.id = scores.course_id;
```
这个视图将会返回以下列:
- `id`: 学生的学号
- `name`: 学生的姓名
- `course_name`: 课程的名称
- `score`: 学生在课程中的成绩