uodate  表一 a   set 地址=(select 名称 from 行政地区 b where b. 代码=a.地区代码)
怎么更新的时候出现,单行子查询返回多个行 错误,应该怎么写,请教

解决方案 »

  1.   

    update    打错了
      

  2.   

    你这个关联是1对多的关系,所以出现这个错误,看你业务逻辑,如果这返回的多行是重复的,那你可以用 distinct里处理:
    update  表一 a   set 地址=(select distinct  名称 from 行政地区 b where b. 代码=a.地区代码)
      

  3.   

    打错字 IDE不提示吗
      

  4.   

    原因就是b表中有一些 :同一个代码 对应的名称 不同 这样数据 或者是存在重复的数据 ,如果对于数据精确度不高就 这样写
    update  表一 a   set 地址=(select min(名称) from 行政地区 b where b. 代码=a.地区代码);
    如果要求高精确度 就要把 b表重复的去掉 :
    如下查询出那些有重复的
    select 代码  from 行政地区 group by 代码 having(count(1)>1)