MySQL中四个表的关联通常指的是多表查询,即通过多个表之间的关系进行查询。以下为示例:
假设我们有四个表:学生信息表、班级信息表、课程信息表和成绩表。它们之间的关系如下:
- 学生信息表(student):
| student_id | name | age | gender |
|---|---|---|---|
| 001 | Tom | 18 | M |
| 002 | Jerry | 19 | M |
| 003 | Lily | 18 | F |
- 班级信息表(class):
| class_id | name |
|---|---|
| 01 | Class A |
| 02 | Class B |
| 03 | Class C |
- 课程信息表(course):
| course_id | name |
|---|---|
| 001 | Math |
| 002 | English |
| 003 | Chemistry |
- 成绩表(score):
| score_id | student_id | course_id | score |
|---|---|---|---|
| 001 | 001 | 001 | 90 |
| 002 | 001 | 002 | 80 |
| 003 | 002 | 003 | 85 |
| 004 | 003 | 001 | 95 |
现在我们想要查询每个学生的姓名、所在班级、选择的课程以及对应的成绩。可以使用以下SQL语句:
SELECT s.name AS student_name, c.name AS class_name, co.name AS course_name, sc.score
FROM student s
JOIN score sc ON s.student_id = sc.student_id
JOIN course co ON sc.course_id = co.course_id
JOIN class c ON s.class_id = c.class_id;
解释一下上述SQL语句:
- 使用JOIN将学生信息表、成绩表和课程表连接起来,通过student_id和course_id进行匹配。
- 然后再通过连接班级信息表,通过class_id进行匹配。
- 最后SELECT查询需要的字段,并且使用AS进行别名命名。
这样就可以得到每个学生的姓名、所在班级、选择的课程以及对应的成绩。




