查询选修了严敏老师的数学分析课程的学生的姓名、课程名、教师名和成绩。 (1)等值连接查询。 (2)自然连接查询。 (3)自身连接查询。
时间: 2024-10-16 10:11:33 浏览: 169
为了查询选修了严敏老师数学分析课程的学生的姓名、课程名、教师名和成绩,我们可以使用SQL的不同查询方式:
1. **等值连接查询** (Equijoin):
```sql
SELECT s.student_name, c.course_name, t.teacher_name, sc.score
FROM students s
JOIN courses c ON s.course_id = c.course_id
JOIN teachers t ON c.teacher_id = t.teacher_id
JOIN scores sc ON s.student_id = sc.student_id AND t.teacher_name = '严敏'
WHERE c.course_name = '数学分析';
```
在这个查询中,我们通过`student_id`, `course_id`, 和 `teacher_id` 来关联学生的表、课程表和教师表。
2. **自然连接查询** (Natural Join):
```sql
SELECT s.student_name, c.course_name, t.teacher_name, sc.score
FROM students s
JOIN courses c ON s.course_id = c.course_id AND t.teacher_id = '严敏'
JOIN scores sc ON s.student_id = sc.student_id
WHERE c.course_name = '数学分析';
```
自然连接省略了`ON`后面的条件`t.teacher_id = t.teacher_id`,因为学生表和课程表中已经有了明确的匹配。
3. **自身连接查询** (Self Join),在这种情况下并不适用,因为我们不需要将学生表与其他表自身连接起来查找信息。所以,对于这种需求,自身连接并不是合适的选择。
阅读全文