如果我有两个像附加的表,我试图从不同的表示例中减去一个表中的值:
我想通过从表QI中减去QD来更新数字,以便新表格
QI: 一个900 b 800 c 700
最好的方法是什么?提前致谢
答案 0 :(得分:1)
假设每qd
个值只有0或1 col1
行:
update qi
set col2 = col2 - (select col2 from qd where qd.col1 = qi.col1)
where exists (select null from qd where qd.col1 = qi.col1);
where exists
子句是为了防止更新没有qi
对应的qd
行。
答案 1 :(得分:0)
最好不要在这种情况下使用子查询。使用方式如下:
select I.COL1,
(I.COL2 - D.COL2) as COL2
from TABLE_QI I
left join TABLE_QD D on D.COL1 = I.COL1;
以下是SQL Fiddle