楼主: 
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,否则会报错,
供参考~ 谢谢