Snowflake中多表关联更新单表报重复别名AEN编译错误问题咨询
报错原因
- 别名重复冲突:你在UPDATE目标表、SET嵌套子查询、FROM子句三个位置,都给
ACCOUNTING_ENTITIES_N表指定了相同的别名aen,Snowflake无法识别重复别名的指向,触发编译报错。 - 语法不符合Snowflake更新规范:Snowflake的多表关联UPDATE语法不需要重复声明目标表,也不需要嵌套子查询获取关联字段,原有写法存在逻辑冗余。
修正后的可运行SQL
UPDATE ACCOUNTING_ENTITIES_N aen SET gmcid = lm.gmcid FROM location_master lm INNER JOIN customer_master cm ON cm.gmcid = lm.gmcid WHERE lm.cost_center = aen.cost_center -- 附加过滤条件按需启用 -- AND lm.cost_center = '1405FC0505' ;
注意事项
- 如果单个cost_center对应多条location_master记录,会导致更新结果不确定,建议先运行关联查询确认
cost_center和gmcid的映射关系唯一,必要时对关联的lm表结果预先去重。
内容的提问来源于stack exchange,提问作者user3840800
相关产品推荐
相关产品推荐

