id=(select city.id from address,city where address in (select name from city) 这里出的问题。
因为子查询查出的结果不唯一,但是又要使用查询结果来为更新id,编译器不知道要将多个结果中的哪一个赋值给id,所以报错。
解决方案:
1.子查询改为select city.id from address,city where address in (select name from city and rownum = 1
确保结果唯一。但是这样可能更新的值不是想要的。
2.明确b表中id要更新成a表中的哪个id值。然后重写语句。