求助:如何关联Extensions表更新ExtensionCallCenters的CustomerId字段
解决ExtensionCallCenters表CustomerId字段更新问题
直接使用UPDATE ... JOIN语法即可完成更新,无需复杂的自关联或子查询:
基础更新(仅同步存在匹配的记录)
UPDATE ExtensionCallCenters t1 INNER JOIN Extensions t2 ON t1.ExtensionId = t2.ExtensionId SET t1.CustomerId = t2.CustomerId;
包含无匹配记录的更新(无匹配时CustomerId设为NULL)
如果需要保留LEFT JOIN的逻辑(处理ExtensionId在Extensions表中不存在的情况),可以改用LEFT JOIN:
UPDATE ExtensionCallCenters t1 LEFT JOIN Extensions t2 ON t1.ExtensionId = t2.ExtensionId SET t1.CustomerId = t2.CustomerId;
原写法错误说明
- 没必要自关联
ExtensionCallCenters表,这会导致子查询中无法识别别名t2(作用域限制) - 直接关联目标表和数据源表即可,避免了同表更新的限制问题
内容的提问来源于stack exchange,提问作者Mekroebo
相关产品推荐
相关产品推荐

