假设有以下三张表:
- 学生表(student):包含学生的学号(sid)、姓名(name)等信息。
- 课程表(course):包含课程的编号(cid)、名称(cname)等信息。
- 选课表(score):包含学生的学号(sid)、课程的编号(cid)、成绩(score)等信息。
其中,选修了“数据库作为先行课”的课程可以通过课程名称进行筛选,假设该课程的名称为“Database”。
使用SQL语句实现该查询:
```
SELECT s.sid, s.name
FROM student s
JOIN score sc ON s.sid = sc.sid
JOIN course c ON sc.cid = c.cid
WHERE c.cname = 'Database';
```
解释:
1. 首先从学生表(student)中选择学生的学号(sid)和姓名(name)。
2. 然后将学生表(student)与选课表(score)进行内连接操作,连接条件是学生的学号(sid)相等。
3. 将上一步得到的结果再与课程表(course)进行内连接操作,连接条件是选课表(score)中的课程编号(cid)与课程表(course)中的课程编号(cid)相等。
4. 最后通过WHERE子句筛选出课程名称为“Database”的记录,得到选修了该课程的学生的学号和姓名。