Oracle 数据库多表联合更新
oracle和mysql的语句有点不同,今天碰到了Oracle的库,做一下记录
update ADM_DEV_ENCODER_CHN set ADM_DEV_ENCODER_CHN.GPS_X=(SELECT "x" from GGG where ADM_DEV_ENCODER_CHN.CHANNEL_SN=GGG."id") where exists(SELECT 1 from GGG where ADM_DEV_ENCODER_CHN.CHANNEL_SN=GGG."id");
应用场景:
A表中记录的某几个字段值空缺
而B表中这几个记录有相应字段值
从B表中查找A表记录对应记录的字段值填充到A表中。
语句中A表:ADM_DEV_ENCODER_CHN
A表缺失的字段名:GPS_X
B表:GGG
B表用于补充A表数据的字段名:x
AB两表共有的字段名:ADM_DEV_ENCODER_CHN(A).CHANNEL_SN;GGG(B)."id"
where exists(SELECT 1 from GGG where ADM_DEV_ENCODER_CHN.CHANNEL_SN=GGG."id");的作用:避免执行完成后A表中出现空值