update a set name=(select  name from b where id=a.id ) 这个语句对吗?更新的是 a中的哪条数据?

解决方案 »

  1.   

    貌似不对!
    update a set a.name=b.name from a,b where a.id=b.id
    --更新的是a表中id号和b表中id号相同的数据。
      

  2.   

    update a set name=b.name from a join b on a.id=b.id
      

  3.   

    楼主你这个是把a表中所有的数据的name都换成id=a.id的值了
      

  4.   

    我觉得这样写也对:
    update a set name=(select b.name from b a where b.id=a.id )得确保a b中仅有一个id相同;
      

  5.   

    a表的id与b表的id相等时,把表b里的name字段的值赋给a表的name值。
      

  6.   

    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 列.
      

  7.   

    这个语句应该是对的【如果a.id在b表里面可以匹配到很多记录就错了】!更新哪些数据就看你a表里面id有多少和b表匹配的