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