两个表.
tb1(五千万条记录)
zkzh --准考证号,
th --题号
da --考生答案
tb2(100条记录)
th --题号
da --标准答案
fs --分数
tb1:zkzh + th 主键
tb2:th 主键
两表目前除主键无其他索引.
现在问:要得到每个考生每个题所得的分数.
条件 tb1.th = tb2.th and tb1.da = tb2.da
如果才能最快(或者较快)得到结果.
以下是两钟方案
方案一:
在tb1,加个字段fs,默认为0
update tb1 set fs = tb2.fs from tb1 , tb2 where tb1.th = tb2.th and tb1.da = tb2.da
方案二:
新建一个表,tb3 (zkzh , th , da , fs)
insert into tb3 select m.* , case when tb1.da = tb2.da then tb2.fs else 0 end from tb1 , tb2 , where tb1.th = tb2.th
各位观众认为那个方案好.或者有更好的其他方案.
[推荐] 考考大家一个问题——SQL能力
最新推荐文章于 2024-09-27 11:31:35 发布