[推荐] 考考大家一个问题——SQL能力

两个表.

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

各位观众认为那个方案好.或者有更好的其他方案.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值