永发信息网

有两个表A 和B ,均有key 和value 两个字段,如果B 的key 在A 中也有,就把B 的v

答案:2  悬赏:0  手机版
解决时间 2021-03-04 23:13
  • 提问者网友:遮云壑
  • 2021-03-04 02:58
有两个表A 和B ,均有key 和value 两个字段,如果B 的key 在A 中也有,就把B 的v
最佳答案
  • 五星知识达人网友:拾荒鲤
  • 2021-03-04 03:14
报错原因是,某个B表中的key值,在A表中存在多个;举个例子:B表中某条记录的key值为20,而A表中key值为20的记录存在两个以上就会报这个错误;解决方案:如果不考虑sql所在业务环境,只从技术上绕过这个报错,可以在多条记录中选取最大的一条或者最小的一条;update B b set b.value=(select max(a.value) from A a where b.key=a.key)where exists(select 1 from A c where b.key=c.key)结合业务考虑,一般系统中设计了字段名为key,是不允许重复的,请楼主检查一下是否存在错误数据或垃圾数据,如果业务要求不允许重复,则添加一个唯一约束,然后正常简单的update就可以执行成功了.
全部回答
  • 1楼网友:洒脱疯子
  • 2021-03-04 04:07
就是这个解释
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯