A
课程id 班级id
1 1
2 1
3 2
B
班级id 学生id
1 2
1 3
准备用a和b关联成这样的:
课程id 学生id
1 2
2 2
1 3
2 3
就是通过班级,间接建立课程和学生的关联,怎么写sql :
insert into c(课程id,学生id) select a.课程id,b.学生id from a as a inner join b b on a.班级id=b.班级id? 可以么
班级id在每个表中都是重复的,能用inner join 么
A
课程id 班级id
1 1
2 1
1 2
2 2 这样的话,就有重复记录。怎么办
可以这样处理,前提:一个学生只属于一个班级,即A,B两表中不会存在重复数据
我发现一个问题,如果学生a参加了班级1和2,班级1有a,b课程,班级2也有a,b课程,那么就保存了4个记录,学生a与课程a,b的记录重复记录了2次
A
课程id 班级id
1 1
2 1
1 2
2 2 这样的话,就有重复记录。怎么办
@小明同学: 那就改进sql吧
insert into c(课程id,学生id) SELECT DISTINCT a.课程id,b.学生id from a as a inner join b b on a.班级id=b.班级id
@田林九村: 谢谢!
你这样子查询后的结果正确不呢
你觉得呢,因为数据很多,我也不知道
@小明同学: 呵呵,对的
你的表连接,看着怎么这么别扭啊