使SQL server查询每一门课的间接选修课(即选修课的选修课)
时间: 2023-06-13 16:03:54 浏览: 323
一个基于MS sql server的选课数据库
假设有一个名为Course的表格,其中包含以下列:
- id:课程ID
- name:课程名称
- prerequisite_id:先修课程ID
则可以使用以下SQL查询来获取每门课的间接选修课:
```
SELECT DISTINCT c2.name
FROM Course c1
JOIN Course c2 ON c1.prerequisite_id = c2.id
WHERE c1.prerequisite_id IS NOT NULL
```
该查询会将课程表格自我连接,查询出所有的间接选修课程。首先,查询会找到所有有先修课程的课程,然后将它们与其他课程进行连接,从而获得它们的间接选修课程。最后,使用DISTINCT关键字去重,以避免重复的课程名称。
阅读全文