有2个相同的表A(id,value)、B(id,value),它们用id关联。 怎么用一个sql 可以把B的value更新到A ?

解决方案 »

  1.   

    UPDATE A,B SET
        A..Value = B.Value
    WHERE A.Id = B.Id;
      

  2.   

    update A set value = (select value from B) where A.value = B.value
    mysql 5.0测试没问题
    其它的我想类似吧
      

  3.   

    update A set value = (select value from B) where A.Id = B.Id
      

  4.   


    mysql> select * from a;
    +------+-------+
    | id   | value |
    +------+-------+
    |    1 | ddh   |
    |    2 | ddf   |
    |    3 | tot   |
    +------+-------+
    3 rows in set (0.00 sec)mysql> select * from b;
    +------+-------+
    | id   | value |
    +------+-------+
    |    1 | tto   |
    |    2 | vedf  |
    |    3 | hjcd  |
    |    4 | yoor  |
    +------+-------+
    4 rows in set (0.00 sec)mysql> UPDATE A SET
        ->           A.value=
        ->          (SELECT value FROM B WHERE B.id=A.id);
    Query OK, 3 rows affected (0.06 sec)mysql> select * from a;
    +------+-------+
    | id   | value |
    +------+-------+
    |    1 | tto   |
    |    2 | vedf  |
    |    3 | hjcd  |
    +------+-------+
    3 rows in set (0.00 sec)
      

  5.   


    update A inner join B on A.id=B.id set A.value=B.value;
      

  6.   

    update A inner join B on A.id=B.id set A.value=B.value;
      

  7.   

    update A set value = B.value from A,B where A.id = B.id
      

  8.   

    MySQL 中可以直接使用1楼的语法格式。
      

  9.   

    或:update A inner join B using(id) set A.value=B.value;