在SQL假设我们有一个名为 '课程' courses_taken你如何使一个单元格的值相对于另一个表格?
课程
c_id key int
name text
credits int
学生
s_id key int
name text
total_credits int
courses_taken
id key int
s_id foreign int
c_id foreign int
我的表,“学生, ''希望使total_credits字段基本上等于
select sum(c.credits) from courses c, students s, courses_taken ct where ct.c_id = courses.c_id and ct.s_id = s.s_id;
,我假设的心不是这样做,因为我从来没有用多表查询工作之前,如果有人可以帮助我与SQL查询的正确的方法,以及这将是巨大的。谢谢
如果我要摆脱总学分字段,是否可以查询学生(从学生中选择*)并将总学分总和加入到结尾? – 2014-11-06 20:44:53
select * from( select s.s_id,s.name,sum(c.credits)from course c,students s,courses_taken ct where ct.c_id = courses.c_id和ct.s_id = s.s_id GROUP BY s。 s_id) 其中s_id = 0;这会工作吗? – 2014-11-06 20:58:53
我的答案中的查询将会列出所有学生姓名及其学分总数。你可以在where子句中添加AND s_id = 0,不需要子查询。 – andy 2014-11-06 21:03:24