貌似不对! update a set a.name=b.name from a,b where a.id=b.id --更新的是a表中id号和b表中id号相同的数据。
update a set name=b.name from a join b on a.id=b.id
楼主你这个是把a表中所有的数据的name都换成id=a.id的值了
我觉得这样写也对: update a set name=(select b.name from b a where b.id=a.id )得确保a b中仅有一个id相同;
a表的id与b表的id相等时,把表b里的name字段的值赋给a表的name值。
update a set name=b.name from a join b on a.id=b.id 这不是个子查询,它是连接表更新. 两表根据一定条件连接,在连接时根据连接的另一个表中的数据更新本表数据.update a set name=(select b.name from b a where b.id=a.id ) 这样是子查询,子查询里根据更新表 a 去查b中的Name,更新到a 的name 列.
update a set a.name=b.name from a,b where a.id=b.id
--更新的是a表中id号和b表中id号相同的数据。
update a set name=(select b.name from b a where b.id=a.id )得确保a b中仅有一个id相同;
这不是个子查询,它是连接表更新.
两表根据一定条件连接,在连接时根据连接的另一个表中的数据更新本表数据.update a set name=(select b.name from b a where b.id=a.id )
这样是子查询,子查询里根据更新表 a 去查b中的Name,更新到a 的name 列.