数据库建表问题:两张多对多的表该怎么建!
4个回答
2013-04-25
追问
可以直接给我SQL语句吗!就以学生和老师为例。学生和老师只有id和名字!
追答
CREATE TABLE 老师 ( id int primary key, 名字 varchar(20) );
CREATE TABLE 学生 ( id int primary key, 名字 varchar(20) );
CREATE TABLE 师生关系 ( 老师id int , 学生id int );
查询 张老师 教的学生
SELECT
学生.*
FROM
学生 , 师生关系, 老师
WHERE
学生.id = 师生关系.学生id
AND 老师.id = 师生关系.老师id
AND 老师. 名字 = '张老师'
展开全部
多对多需要用中间表来表示。
------------------------------------------------------------------------------------
student(student_id,user_name....)
teacher(teacher_id,teacher_name)
student_teacher(student_teacher_id,student_id,teacher_id)
和上面给图的哥们一样
-----------------------------------------------------------------------------------
select 加上你需要查询的字段
from student as s,teacher as t, student_teacher as st
where s.student_id = st.student_id and t.teacher_id=st.teacher_id
and s.studnet_id = 1;//表示学生1对应的老师。
------------------------------------------------------------------------------------
select 加上你需要查询的字段
from student as s,teacher as t, student_teacher as st
where s.student_id = st.student_id and t.teacher_id=st.teacher_id
and t.teacher_id = 1;//表示老师1对应的学生。
--------------------------------------------------------------------------------------
------------------------------------------------------------------------------------
student(student_id,user_name....)
teacher(teacher_id,teacher_name)
student_teacher(student_teacher_id,student_id,teacher_id)
和上面给图的哥们一样
-----------------------------------------------------------------------------------
select 加上你需要查询的字段
from student as s,teacher as t, student_teacher as st
where s.student_id = st.student_id and t.teacher_id=st.teacher_id
and s.studnet_id = 1;//表示学生1对应的老师。
------------------------------------------------------------------------------------
select 加上你需要查询的字段
from student as s,teacher as t, student_teacher as st
where s.student_id = st.student_id and t.teacher_id=st.teacher_id
and t.teacher_id = 1;//表示老师1对应的学生。
--------------------------------------------------------------------------------------
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
多建一个关联表,关联表里面,只需存老师的id,对应上学生的id即可
追问
可以直接给我SQL语句吗!就以学生和老师为例。学生和老师只有id和名字!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实很简单,建立两个表比如学生表有: IdStu(学生ID),。。。。(学生信息)
老师表: IdStu(老师Id),。。。。。(老师信息),idStus(学生表中的学生IDS)
这是最简单的,但是对数据库压力很大,还有比较难的,你要是还想知道跟多的话,可以联系我
老师表: IdStu(老师Id),。。。。。(老师信息),idStus(学生表中的学生IDS)
这是最简单的,但是对数据库压力很大,还有比较难的,你要是还想知道跟多的话,可以联系我
追问
恩 想知道 想知道 说说嘛!
追答
一对一张表的关系和一对多张表的关系,很复杂的,慢慢你会明白
一张表对一张表性能消耗大,但是理解简单,如果是多张表对多张表,你的数据库还要用到二维数组,很麻烦,不是说说就能清楚的。 多看书吧,以后工作你就明白了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询