--记录每个班级中每个学生的每个课程的分数
create table T1(classId int, --班级ID
studentId int, ---学生ID
CourseId int, ---课程ID
score int ---课程得分
);
---记录每个班级有哪些课程,且课程的权重是多少
create table T2(classId int, ---班级ID
CourseId int, ----课程ID
power int ----课程权重
);--比如说现在有一下信息
T1
班级 学生 课程 分数 权重
1 1 1 160 1
1 1 2 113 2
1 1 3 159 3
1 2 1 121 1
1 2 2 164 2
1 2 3 160 3
2 1 3 81 1
T2
班级 课程 权重
1 1 1
1 2 2
1 3 3
1 4 4
2 2 1
2 3 1
2 4 1现在我想使用外连接,得到结果:
班级 学生 课程 分数 权重
1 1 1 160 1
1 1 2 113 2
1 1 3 159 3
1 1 4 Null 4
1 2 1 121 1
1 2 2 164 2
1 2 3 160 3
1 2 4 Null 4
:
:
create table T1(classId int, --班级ID
studentId int, ---学生ID
CourseId int, ---课程ID
score int ---课程得分
);
---记录每个班级有哪些课程,且课程的权重是多少
create table T2(classId int, ---班级ID
CourseId int, ----课程ID
power int ----课程权重
);--比如说现在有一下信息
T1
班级 学生 课程 分数 权重
1 1 1 160 1
1 1 2 113 2
1 1 3 159 3
1 2 1 121 1
1 2 2 164 2
1 2 3 160 3
2 1 3 81 1
T2
班级 课程 权重
1 1 1
1 2 2
1 3 3
1 4 4
2 2 1
2 3 1
2 4 1现在我想使用外连接,得到结果:
班级 学生 课程 分数 权重
1 1 1 160 1
1 1 2 113 2
1 1 3 159 3
1 1 4 Null 4
1 2 1 121 1
1 2 2 164 2
1 2 3 160 3
1 2 4 Null 4
:
:
select a.classId,b.studentId,a.CourseId,b.score,a.[power]
from t2 a left join t1 b on a.classId = b.classId and a.CourseId = b.CourseId
班级 学生 课程 分数 权重
1 NULL NULL NULL 4
1 1 1 160 1
1 1 2 113 2
1 1 3 159 3
1 2 1 121 1
1 2 2 164 2
1 2 3 160 3
2 NULL NULL NULL 1
2 NULL NULL NULL 1
2 1 3 81 1
效果没出来呢……
每个班级有每个班级的课程,每个班级又有每个班级的学生,
楼主想让每个学生对应该班级所有的课程,没有值的为null
根据楼主的数据和结果
1班有4门课(1234)2个学生(12),
那就是1234对应1的数据和1234对应2的数据。