mysql三表联合查询
时间: 2023-10-29 21:56:58 浏览: 42
三表联合查询是指在一个查询语句中涉及到三个或以上的表,通过连接这些表来获取所需的结果。下面是一个简单的例子:
假设有三个表:学生表(students)、课程表(courses)和成绩表(scores),它们的结构如下:
students 表:
| id | name |
|----|--------|
| 1 | 张三 |
| 2 | 李四 |
| 3 | 王五 |
| 4 | 赵六 |
courses 表:
| id | name |
|----|----------|
| 1 | 数学 |
| 2 | 英语 |
| 3 | 物理 |
| 4 | 化学 |
scores 表:
| id | student_id | course_id | score |
|----|------------|-----------|-------|
| 1 | 1 | 1 | 90 |
| 2 | 1 | 2 | 85 |
| 3 | 2 | 1 | 92 |
| 4 | 2 | 2 | 88 |
| 5 | 3 | 1 | 95 |
| 6 | 3 | 3 | 89 |
现在需要查询每个学生的名字和他们所修的课程的名称以及对应的成绩。可以使用以下 SQL 语句:
```
SELECT students.name, courses.name, scores.score
FROM students
JOIN scores ON students.id = scores.student_id
JOIN courses ON scores.course_id = courses.id
```
这个查询语句使用了 JOIN 操作符来连接三个表。首先,它连接了学生表(students)和成绩表(scores),这样就能获取每个学生的成绩。然后,它继续连接成绩表(scores)和课程表(courses),这样就能获取每个学生所修的课程的名称。最后,它选择了需要的列,即学生姓名、课程名称和成绩。