- 19.编写Select语句,使用外连接查询出班级编码为“ME1021”的每个学生的选课及 -- 成绩信息(包含学生学号、姓名、课程编码、百分制成绩)。如果学生没有选课, -- 则课程编号和成绩列用空值填充。 -- 扩展:班级编码为“ME1021”,子查询实现
时间: 2024-02-27 10:57:49 浏览: 87
SQL语句创建学生信息数据库表的示例-学生信息数据库表.doc
使用外连接查询班级编码为“ME1021”的每个学生的选课及成绩信息,可以使用以下SQL语句:
```sql
SELECT s.student_id, s.student_name, c.course_code, sc.score
FROM student s
LEFT JOIN student_course sc ON s.student_id = sc.student_id
LEFT JOIN course c ON sc.course_id = c.course_id
WHERE s.class_code = 'ME1021';
```
如果学生没有选课,则课程编码和成绩列会用空值填充。
扩展:班级编码为“ME1021”,可以使用子查询来实现外连接查询,如下所示:
```sql
SELECT s.student_id, s.student_name, c.course_code, sc.score
FROM student s
LEFT JOIN (
SELECT sc.student_id, sc.course_id, sc.score
FROM student_course sc
JOIN course c ON sc.course_id = c.course_id
WHERE c.class_code = 'ME1021'
) sc ON s.student_id = sc.student_id
LEFT JOIN course c ON sc.course_id = c.course_id;
```
在子查询中,先筛选出班级编码为“ME1021”的课程,然后再与学生选课表进行外连接查询。
阅读全文