oracle数据库中想用一张表的一列值替换另一张表的一列值,但是报了文章标题上的异常,SQL如下:
update flow02.usr_user a set a.user_mobile3 = (select b.usercode from usruser b where a.user_email=b.useremail),求解决,很急!
where exists (select null from usruser where a.user_email=usruser.useremail)
------解决方案--------------------------------------------------------
select b.usercode from usruser b where a.user_email=b.useremail
你的这个语句返回了2条或以上的结果
------解决方案--------------------------------------------------------
可以想一下再加个什么条件能够是匹配的结果只有一条,如果无法保证返回的结果只有一条,那么就后面再加个条件 rownum <=1;
------解决方案--------------------------------------------------------
应该用主键列来限制
------解决方案--------------------------------------------------------
查询语句结果集为2行或2行以上,所以报错。你需要重新根据你的业务需求修改查询语句
------解决方案--------------------------------------------------------
谢谢大家的帮忙,问题已经解决了
update flow02.usr_user a set a.user_mobile3 = (select b.usercode from usruser b where a.user_email=b.useremail and rownum=1)
where exists (select null from usruser where a.user_email=usruser.useremail)
加了标红的那一句and rownum=1