日期:2014-05-16  浏览次数:20442 次

关于匹配条件更新字段值的问题

?

表:info

id name saler
1 张三 1000
2 王五 2000

?

表:scale

id infoid values
1 1 1.5
2 2 3

?

scale表中的infoid为info表中的主键,现在需要将info表中的saler的值乘以相对应的scale值。

?

mysql:

update info i 
      set i.saler = i.saler * (
            select s.values from scale s where s.infoid = i.id
)

oralce:

update info i 
      set i.saler = i.saler * (
            select s.values from scale s where s.infoid = i.id
) where exists (select o.id from info o )

??

结果:

id name saler
1 张三 1500
2 王五 6000

?

?

?

?