mysql查询多对多时怎么处理

更新时间:02-02 教程 由 忘殇 分享

在 MySQL 数据库中,很多时候都需要查询多对多的数据,这种情况下需要使用中间表来处理。下面我们来看一下如何处理多对多查询。

首先,需要建立两个表,例如“学生表”和“课程表”,这两个表需要建立一个中间表,例如“选课表”:

CREATE TABLE `student` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) NOT NULL,PRIMARY KEY (`id`));CREATE TABLE `course` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) NOT NULL,PRIMARY KEY (`id`));CREATE TABLE `select_course` (`student_id` int(11) NOT NULL,`course_id` int(11) NOT NULL,PRIMARY KEY (`student_id`,`course_id`));

其中,“选课表”中的“student_id”和“course_id”都是对应“学生表”和“课程表”的主键。

查询时需要使用 JOIN 关键字进行多表查询。例如,查询某个学生选择的所有课程:

SELECT course.nameFROM courseJOIN select_course ON course.id = select_course.course_idWHERE select_course.student_id = 1;

其中,“1”表示某个学生的 ID。

同理,查询某个课程的所有学生:

SELECT student.nameFROM studentJOIN select_course ON student.id = select_course.student_idWHERE select_course.course_id = 1;

其中,“1”表示某个课程的 ID。

以上就是处理 MySQL 多对多查询的方法。

声明:关于《mysql查询多对多时怎么处理》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2259813.html