UPDATE ClientBankInfo SET status = 3 WHERE sn IN (SELECT sn FROM zjzc.ClientBankInfo WHERE cardNo IN (SELECT cardNo FROM ClientWenJinCardInfo WHERE status = 3)); UPDATE ClientBankInfo p, (SELECT sn FROM zjzc.ClientBankInfo WHERE cardNo IN (SELECT cardNo FROM ClientWenJinCardInfo WHERE status = 3)) pp SET p.status = 3 where p.sn=pp.sn 关联更新测试; mysql> select * from t1; +------+------+ | id | name | +------+------+ | 1 | a1 | | 2 | a2 | | 3 | a3 | | 4 | a4 | | 5 | a5 | | 6 | a6 | +------+------+ 6 rows in set (0.00 sec) mysql> select * from t2; +------+------+ | id | name | +------+------+ | 6 | a6 | | 5 | a5 | +------+------+ 2 rows in set (0.00 sec) mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> update t1,t2 set t1.name='xx' where t1.id=t2.id; Query OK, 2 rows affected (0.01 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> select * from t1; +------+------+ | id | name | +------+------+ | 1 | a1 | | 2 | a2 | | 3 | a3 | | 4 | a4 | | 5 | xx | | 6 | xx | +------+------+ 6 rows in set (0.00 sec) mysql> select * from t2; +------+------+ | id | name | +------+------+ | 6 | a6 | | 5 | a5 | +------+------+ 2 rows in set (0.00 sec) 如果: mysql> update t1,t2 set name='xx' where t1.id=t2.id; ERROR 1052 (23000): Column 'name' in field list is ambiguous 提示name列是模糊的 /************** mysql> select * from t2; +------+------+ | id | name | +------+------+ | 6 | a6 | | 5 | a5 | +------+------+ 2 rows in set (0.00 sec) mysql> update t1,t2 set name='xx' where t1.id=t2.id; ERROR 1052 (23000): Column 'name' in field list is ambiguous mysql> update t1,t2 set t2.name='xx' where t1.id=t2.id; Query OK, 2 rows affected (0.01 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> select * from t2; +------+------+ | id | name | +------+------+ | 6 | xx | | 5 | xx |