【发布时间】:2014-07-30 11:57:45
【问题描述】:
我尝试使用此 sql 从表中已存在的值更新表中的新列。
update "PROMOTION" t1
set "OFFER_CHAIN_ID" = poc."OFFER_CHAIN_ID"
from "PROMOTION_OFFER_CHAIN" poc
inner join "PROMOTION" on "PROMOTION"."ID" = poc."PROMOTION_ID"
发生的情况是连接的第一个值被复制到所有后续条目中。关于两个表。原始表具有唯一值,更新列中的所有值都相同。
最终我改用了这个 SQL。
update "PROMOTION" t1
set "OFFER_CHAIN_ID" = poc."OFFER_CHAIN_ID"
from "PROMOTION_OFFER_CHAIN" poc
where
t1."ID" = poc."PROMOTION_ID"
此更新有效并复制了所有数据,原始表中的 1000 个唯一元素,更新后的表中的 1000 个唯一元素。
这是一个错误,还是预期的结果?
【问题讨论】:
-
在进行此类更新之前,通常明智的做法是先运行类似的选择查询以查看可能的结果。
标签: sql join sql-update