我有一个名为subject
的表格,我添加了一个新列stdCount
。
还有一个名为enrollments
的表,其中包含student_id
,subject
,year
,marks
列。主要是这个表记录了每个学生他或她注册的科目。
现在,我需要从enrollments
表中获取每个单元的学生计数,并更新subject
表的stdCount
列。
我该怎么做?
答案 0 :(得分:2)
如果SUBJECT表每个主题有一行,即使该主题在2年以上提供,并且您希望STDCOUNT显示在所有年份中注册的学生总数:
update subject s
set stdcount =
(select count(*)
from enrollments e
where e.subject = s.subject)
如果SUBJECT表每个主题和年份有一行(并且有年份列),并且您想要显示每个(主题,年份)组合中注册的学生总数:
update subject s
set stdcount =
(select count(*)
from enrollments e
where e.subject = s.subject
and e.year = s.year)