学生表里有张三,李四 课程表里有数学,语文,历史 (成绩是随便的)
------------------------------------------------------------查询每个学生的3个科目的平均成绩 ???
---------------------------------------------------------|
每个学生 科目 考试平均成绩xnm(学生姓名),knm(课程名称),(考试成绩)的平均成绩
------------------------------------------------------------create table xb(学生表)
(
xid(学生编号) int(5) auto_increment primary key,
xnm(学生姓名) varchar(10) not null
)type=innodb
create table kb(课程表)
(
kid(课程编号) int(5) auto_increment primary key,
knm(课程名称) varchar(10) not null
)type=innodb
create table zhb(组合表)
(
xid(学生编号) int(5),
kid(课程编号) int(5),
ksj(考试时间) datetime,
kcj(考试成绩) smallint,
foreign key(xid) references xb(xid),
foreign key(kid) references kb(kid),
primary key(xid,kid,ksj)
)type=innodb
------------------------------------------------------------查询每个学生的3个科目的平均成绩 ???
---------------------------------------------------------|
每个学生 科目 考试平均成绩xnm(学生姓名),knm(课程名称),(考试成绩)的平均成绩
------------------------------------------------------------create table xb(学生表)
(
xid(学生编号) int(5) auto_increment primary key,
xnm(学生姓名) varchar(10) not null
)type=innodb
create table kb(课程表)
(
kid(课程编号) int(5) auto_increment primary key,
knm(课程名称) varchar(10) not null
)type=innodb
create table zhb(组合表)
(
xid(学生编号) int(5),
kid(课程编号) int(5),
ksj(考试时间) datetime,
kcj(考试成绩) smallint,
foreign key(xid) references xb(xid),
foreign key(kid) references kb(kid),
primary key(xid,kid,ksj)
)type=innodb
--TRY
SELECT b.xnm,c.knm,avg(a.kcj) avgkcj FROM
zhb a inner join xb b on a.xid=b.xid
inner join kb c on a.kid=c.kid
select 学生编号,avg(考试成绩) from 组合表 group by 学生编号
zhb a inner join kb b on a.xid=b.xid
inner join kb c on a.kid=c.kid