(13)查询每一课程的间接选修课,以“课程名”、“间接选修课名”作列名:
```
SELECT c1.name AS course, c2.name AS indirect_course
FROM courses AS c1
INNER JOIN course_relations ON c1.id = course_relations.course_id
INNER JOIN courses AS c2 ON course_relations.indirect_course_id = c2.id;
```
这个查询语句使用 INNER JOIN 连接了三个表,并返回每一门课程的间接选修课程信息。其中,c1.name 表示返回课程名称,c2.name 表示返回间接选修课程名称。
(14)列出所有没有选修“数据结构”课程的学生的学号、姓名、所在院系:
```
SELECT students.id, students.name, departments.name AS department
FROM students
LEFT JOIN departments ON students.department_id = departments.id
WHERE students.id NOT IN (
SELECT student_id FROM scores WHERE course_id = (
SELECT id FROM courses WHERE name = '数据结构'
)
);
```
这个查询语句使用 LEFT JOIN 连接了两个表,并使用 WHERE 子句过滤出没有选修“数据结构”课程的学生信息。其中,students.id 表示返回学生 ID,students.name 表示返回学生姓名,departments.name 表示返回所在院系名称。