table_A (id,name) (学号,学生名字)
数据:1,张三;2,李四;3,王五
table_B(id,user_id,class,score)(编号,外键关联A表学生号,课程名,得分)
数据:1,1,语文,33;
2,1,数学,98;
3,2,语文,77
问题:查询每个学生的总分
学生表成绩表查询语句
答案:2 悬赏:60 手机版
解决时间 2021-12-19 19:19
- 提问者网友:星軌
- 2021-12-18 19:49
最佳答案
- 五星知识达人网友:渊鱼
- 2021-12-18 21:25
select table_A.name,sum(table_B.score) from table_A left join table_B on table_A.id= table_B.user_id
全部回答
- 1楼网友:梦中风几里
- 2021-12-18 21:49
每科的总成绩?查询它干什么?要查的话这样查:
select 科目表.kumuid,kumuname,sum(chenji) as sum_chenji,avg(chenji) as avg_chenji
from 科目表,成绩表
where 科目表.kumuid=成绩表.kumuid
group by 科目表.kumuid,kumuname
由于是查每科的总成绩和平均分,所以和学生没有关系,不用关联学生表
----------------------------------------------------------------
不过我怀疑你是不是想查每个学生的总成绩和平均分,是这样查的:
select 学生表.uid,uname,sum(chenji) as sum_chenji,avg(chenji) as avg_chenji
from 学生表,成绩表
where 学生表.uid=成绩表.uid
group by uid,uname
=========================================================
对于楼主的补充的回答:
你所要的sql语句我已经写了,这个查询由于是查询每个科目的总成绩,所以不需要查询学生的姓名,所以不应关联学生表。只需要用成绩表关联科目表(目的是查询出科目的名称)。然后直接使用分组汇总(就是用 group by 子句和sum、avg两个聚合函数实现的)。
分组查询是一种最基本的查询,现在的主流数据库都支持它。所以每一个学习数据库的人都应该很好的理解它。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯