update t1 set t1.name=(select name from t2 where id=t1.id)这样写没错 但有一个前提 ,那就是t1表中的id和name是一对一的关系,否则就会报错。
mysql:
update t1 set t1.name=(select name from t2 where t2.id=t1.id limit 0,1)
ms sql server:
update t1 set t1.name=(select top 1 name from t2 where t2.id=t1.id)
oracle:
update t1 set t1.name=(select name from t2 where t2.id=t1.id and rownum<=1)
你这个语句可以,不过要保证t2.name的值查询出来是唯一的,不然会报错