(多对多关系)
马克-to-win:Teacher表:两列id,name。
Studnet表: 三列:id,name,age
TeacherStudent表(关系表):三列:id,tid,sid
create table TeacherStudent(id int not null,tid int not null,sid int not null);
2) teacher and student:(一个老师可能有多个学生,一个学生可能有多个老师)
qixy有两个学生:liyaohua and fuwenlong, huanglaosh老师有一个学生--->fuwenlong
INSERT INTO TeacherStudent (id,tid,sid) VALUES(1,1,1);
INSERT INTO TeacherStudent (id,tid,sid) VALUES(2,1,2);
INSERT INTO TeacherStudent (id,tid,sid) VALUES(3,2,2);
qixy的学生显示出来。
select * from Teacher t,Student s,TeacherStudent ts where t.name='qixy' and t.id=ts.tid and s.id=ts.sid;
+----+------+----+-----------+------+----+-----+-----+
| id | name | id | name | age | id | tid | sid |
+----+------+----+-----------+------+----+-----+-----+
| 1 | qixy | 1 | liyaohua | 25 | 1 | 1 | 1 |
| 1 | qixy | 2 | fuwenlong | 26 | 2 | 1 | 2 |
+----+------+----+-----------+------+----+-----+-----+
huanglaosh的学生显示出来。
select * from Teacher t,Student s,TeacherStudent ts where t.name='huanglaosh' and t.id=ts.tid and s.id=ts.sid;
+----+------------+----+-----------+------+----+-----+-----+
| id | name | id | name | age | id | tid | sid |
+----+------------+----+-----------+------+----+-----+-----+
| 2 | huanglaosh | 2 | fuwenlong | 26 | 3 | 2 | 2 |
+----+------------+----+-----------+------+----+-----+-----+
fuwenlong的老师显示出来。
select * from Teacher t,Student s,TeacherStudent ts where s.name='fuwenlong' and t.id=ts.tid and s.id=ts.sid;
+----+------------+----+-----------+------+----+-----+-----+
| id | name | id | name | age | id | tid | sid |
+----+------------+----+-----------+------+----+-----+-----+
| 1 | qixy | 2 | fuwenlong | 26 | 2 | 1 | 2 |
| 2 | huanglaosh | 2 | fuwenlong | 26 | 3 | 2 | 2 |
+----+------------+----+-----------+------+----+-----+-----+
参考一下以下游动的同等写法:(未来springJdbc或mybatisxxxxx的某种技术中也许用的着,因为它严格限制单表游动)
select name from Student where id in (select sid from TeacherStudent where tid in (select id from Teacher where name='qixy')) ;
结果:
+-----------+
| name |
+-----------+
| liyaohua |
| fuwenlong |
+-----------+
更多请看下节:http://www.mark-to-win.com/tutorial/mydb_DBIntroduction_ManyToMany.html