在 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 多对多查询的方法。