MySQL三表联查代码实战详解(mysql三表联查代码)

MySQL三表联查代码实战详解

在实际应用中,我们经常需要从多个表中查询数据,此时我们就需要用到联表查询。MySQL的联表查询可以实现对多个表进行连接查询,即将多个表连接起来,根据表中的条件查询所需的数据。其中,三表联查是最常见的一种联表查询方式。

下面将通过实例讲解如何使用MySQL进行三表联查,以便读者更好地了解该查询方式。

假设我们有三个表:学生(student)、课程(course)和成绩(score)。

**student:**

| Field | Type | Null | Key | Default | Extra |

| ——- | ———- | —- | — | ——- | ————– |

| id | int | NO | PRI | NULL | auto_increment |

| name | varchar(6) | YES | | NULL | |

| age | int | YES | | NULL | |

| address | varchar(6) | YES | | NULL | |

**course:**

| Field | Type | Null | Key | Default | Extra |

| ——– | ———– | —- | — | ——- | ————– |

| id | int | NO | PRI | NULL | auto_increment |

| name | varchar(10) | YES | | NULL | |

| teacher | varchar(10) | YES | | NULL | |

| class_id | int | YES | | NULL | |

**score:**

| Field | Type | Null | Key | Default | Extra |

| ———- | —- | —- | — | ——- | —– |

| student_id | int | NO | MUL | NULL | |

| course_id | int | NO | MUL | NULL | |

| score | int | YES | | NULL | |

这三个表中,学生表中存储了学生的基本信息,课程表中存储了课程的相关信息,成绩表中存储了学生和课程的成绩信息。

现在我们需要查询学生的姓名、所属课程和成绩,可以使用以下代码进行三表联查:

SELECT student.name, course.name, score.score 
FROM student, course, score
WHERE student.id = score.student_id
AND course.id = score.course_id
ORDER BY student.name;

解释一下这段代码的含义:

– SELECT student.name, course.name, score.score:查询学生的姓名、所属课程和成绩。

– FROM student, course, score:联表查询三个表的数据。

– WHERE student.id = score.student_id AND course.id = score.course_id:根据学生ID和课程ID进行筛选,使学生、课程和成绩数据对应起来。

– ORDER BY student.name:按照学生姓名进行升序排序。

通过上述操作,我们可以得到学生的姓名、所属课程和成绩,如下图所示:

![三表联查结果](https://img-blog.csdn.net/20180621093717151?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3llbGxhZ2hpZW5fMTAw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85)

除了上述代码,我们还可以使用MySQL内置的JOIN语句进行三表联查。以下是使用内置JOIN语句进行三表联查的代码:

SELECT student.name, course.name, score.score 
FROM student
JOIN score ON student.id = score.student_id
JOIN course ON course.id = score.course_id
ORDER BY student.name;

使用JOIN语句与使用逗号分隔符的语句效果是一样的,只是语法上有所不同,因此读者可以根据自己的喜好选择合适的语句。

综上所述,三表联查是很常用的一种SQL联表查询方式,通过以上实例,相信读者已经掌握了如何进行三表联查,希望本篇文章对读者有所帮助。


数据运维技术 » MySQL三表联查代码实战详解(mysql三表联查代码)