我有两个具有相同列anomaly_id
的表。我想使用此代码
anomaly_id
的行从第一个表复制到第二个表
UPDATE amb.anamoly_log_update
SET anamoly_id = t2.anomaly_id
FROM amb.anamoly_log_update t1
INNER JOIN amb.anomaly_fee t2 ON t1.anamoly_id=t2.anomaly_id
即使在我这样做之后,当amb.anomaly.fee
(源表)中存在数据时,它会显示0行受影响
请帮忙
修改评论from post:我只想将anamoly_id
中的所有amb.anamoly_fee
复制到amb.anamoly_log_update
。我的代码可能是荒谬的。请检查一下。
答案 0 :(得分:3)
要将id从anomaly_fee复制到anamoly_log_update,请使用:
INSERT INTO anamoly_log_update (anamoly_id)
SELECT anamoly_id FROM anomaly_fee
两列都看起来像这样:
INSERT INTO anamoly_log_update (anamoly_id,PID)
SELECT anamoly_id,PID FROM anomaly_fee
答案 1 :(得分:0)
你只会复制数据,如果他们在两个表中的位置..然后没有任何更新,因为你没有更改数据=>受影响的0行
ON t1.anamoly_id=t2.anomaly_id
请考虑您真正想做的事情并更改您的描述..
答案 2 :(得分:0)
amb.anamoly_log_update是否包含至少一行与amb.anamoly_fee中存在的anamoly_id相对应的行?您正尝试在anamoly_id上加入两个表。
答案 3 :(得分:0)
您需要在表之间提供除t1.anamoly_id=t2.anomaly_id
之外的其他链接,否则查询将无效
答案 4 :(得分:0)
merge into amb.anamoly_log_update as t1
using amb.anomaly_fee as t2
on t1.anamoly_id=t2.anomaly_id
when matched then
update set t1.anamoly_id = t2.anomaly_id