作者bohei (run and fall)
看板Database
标题Re: [SQL ] 依条件 UPDATE 多行
时间Thu Jun 19 14:56:33 2014
※ 引述《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,否则会报错,
供参考~ 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.75.8.205
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Database/M.1403160996.A.EA1.html
※ 编辑: bohei (211.75.8.205), 06/19/2014 14:56:52
1F:推 LaPass:了解了,感谢 06/19 15:36