想了想我还是觉得在写一篇关于多对多的文档吧,因为我看了官方的文档写的不够细,不好理解。我自己也花了时间去看人家的文档还有自己又做了一些测试才知道怎么用的现在把我做测试的所有过程分享给大家。
数据库表与数据
就从数据库表开始啦,因为这样可能会更利于大家去理解。大家都知道数据库多对多关系都是需要三张表来完成的,一张主表,一张关联表,还有一张中间表。比如我们这里主表是学生表关联课程表。因为一个学生可以学多们课程,一门课程可以有多个学生来上课所以需要有一个中间表把他们关联起来。现在我就把今天需要做测试的几张表都贴出来,也方便大家在有不明白的时候可以拿来做测试。
下面这张是学生表:
/*学生表*/
DROP TABLE IF EXISTS `pwn_student`;
CREATE TABLE pwn_student (
id INT AUTO_INCREMENT,
name VARCHAR(30),
age INT ,
class VARCHAR(50),
address VARCHAR(100),
PRIMARY KEY(id)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
/* 表数据 */
insert into pwn_student(name,age,`class`,address) values('学生A',15,'二班','a路2号');
insert into pwn_student(name,age,`class`,address) values('学生B',16,'二班','a路1号');
insert into pwn_student(name,age,`class`,address) values('学生C',15,'二班','B路1号');
中间表:
/*学生课程关联表*/
DROP TABLE IF EXISTS `pwn_Stu_Cour`;
CREATE TABLE pwn_Stu_Cour(
id INT AUTO_INCREMENT,
stu_id INT ,
cour_id INT,
PRIMARY KEY(id)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
/*表数据*/
insert into pwn_Stu_cour(stu_id,cour_id) values(1,1);
insert into pwn_Stu_cour(stu_id,cour_id) values(2,2);
insert into pwn_Stu_cour(stu_id,cour_id) values(3,3);
insert into pwn_Stu_cour(stu_id,cour_id) values(1,1);
insert into pwn_Stu_cour(stu_id,cour_id) values(2,2);
insert into pwn_Stu_cour(stu_id,cour_id) values(3,3);
insert into pwn_Stu_cour(stu_id,cour_id) va