Re: [SQL ] 依条件 UPDATE 多行

楼主: bohei (run and fall)   2014-06-19 14:56:33
※ 引述《LaPass (LaPass)》之铭言:
: 数据库名称: MySQL
: 数据库版本: 不确定,但版本不会太新
: 内容/问题描述:
: tablea
: id name num
: 1 AA 5
: 4 BB 6
: 5 CC 7
: tableb
: id aid name num
: 1 1 AA 0
: 2 4 BB 0
: 3 5 CC 0
: 有没有办法只靠一行SQL
: 就把tablea的num,依照 tablea.id=tableb.rid的条件,写到tableb的num
: 希望最后会变成下面这样
: tableb
: id aid name num
: 1 1 AA 5
: 2 4 BB 6
: 3 5 CC 7
UPDATE tableb SET num=(SELECT num FROM tablea WHERE tablea.id=tableb.aid)
WHERE EXISTS(SELECT 1 FROM tablea WHERE tablea.id=tableb.aid)
这句在Oracle可行,不确定在Mysql可不可,但都基本的SQL应该通用,
重点在于等号后面的子查询,和限定条件有存在于tablea的才UPDATE,
要注意的是要确保此子查询只会回传1 row,否则会报错,
供参考~ 谢谢
作者: LaPass (LaPass)   2014-06-19 15:36:00
了解了,感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com