db2 update 字段只对一行更新但所有行全部更新成null
发布网友
发布时间:2022-04-26 14:15
我来回答
共1个回答
热心网友
时间:2022-06-29 00:18
update crm_cmg_mon_register a set a.val16=(
select b.SERIAL_NO from crm_cmg_register b where b.date_id='2014-03-16' and a.custmgr_id=b.custmgr_id
) where a.date_id='201403'
你这句SQL肯定会出问题啊,这句相当于:
update crm_cmg_mon_register set val16=? where a.date_id='201403'
把条件为 a.date_id='201403'数据都更新了。
多表关联更新要在where后面要加上关联条件。
正确:
update crm_cmg_mon_register a set a.val16=(
select b.SERIAL_NO from crm_cmg_register b where b.date_id='2014-03-16' and a.custmgr_id=b.custmgr_id
) where a.date_id='201403' and
exists (select 1 from crm_cmg_register b where a.custmgr_id=b.custmgr_id )