是这样的,那天需要写个sql,将表table_1的b(alaclineend_id)列批量更新成table_2的b(line_id)列,并且table_1和table_2的a(id)列一一对应
大概表里的数据如下:
表一:
需求:将table_1的ALACLINEEND_ID更新成table_2的LINE_ID,并且要求table_1的id与table_2的id一一对应。
编写如下sql执行后发现报错:【-4097: 单行子查询返回多行】
这里就发现自己的辣鸡之处,因为table_2的id有重复,所以会报错单行子查询返回多行,然后更改sql,将sql里的select语句加上top 1,或者在select子查询最后加上limit 1就可以执行了。
如下为执行结果和table_1数据填充的情况:
说明:
1.如果table_2中的id和line_id一一对应并且没有重复数据,执行select语句是不用加top 1 或者limit 1的。
2.如果table_2中的id和line_id有重复并且一个id对应多个line_id的话,就算加了top 1 或者limit 1 执行会造成更新结果不准确,更新规则都会以一地个匹配到的id—>imie_id为准。
评论已关闭