解决方案 »

  1.   

    update test t1 set t1.willage_name=(select ward_name from test t2 where t2.ward_code=substr(t1.ward_code,1,9)) where length(t1.ward_code)=12;
      

  2.   

    update test t1 set t1.willage_name=(select ward_name from test t2 where t2.ward_code=substr(t1.ward_code,1,9)) where length(t1.ward_code)=12;这个不对啊 我也是这么写的[SQL] UPDATE city_village_code t1
    SET t1.village_name = (
    SELECT
    ward_name
    FROM
    city_village_code t2
    WHERE
    t2.ward_code = substr(t1.ward_code, 1, 9)
    )
    WHERE
    length(t1.ward_code) = 12;
    [Err] 1093 - You can't specify target table 't1' for update in FROM clause报这个错误啊  是同一张表的字段
      

  3.   

    update test t1 set t1.willage_name=(select ward_name from test t2 where t2.ward_code=substr(t1.ward_code,1,9)) where length(t1.ward_code)=12;这个不对啊 我也是这么写的[SQL] UPDATE city_village_code t1
    SET t1.village_name = (
    SELECT
    ward_name
    FROM
    city_village_code t2
    WHERE
    t2.ward_code = substr(t1.ward_code, 1, 9)
    )
    WHERE
    length(t1.ward_code) = 12;
    [Err] 1093 - You can't specify target table 't1' for update in FROM clause报这个错误啊  是同一张表的字段
    我在我的机子上试过是可以的,请问你的是ORACLE数据库吗?
      

  4.   

    UPDATE city_village_code t1
    SET village_name = (
    SELECT
    ward_name
    FROM
    city_village_code  WHERE
    ward_code = substr(t1.ward_code, 1, 9)
    )
    WHERE
    length(t1.ward_code) = 12;