3

我有 2 个表:legendtemp。temp 有 ID 和 account ID,legend 有adven_id、account_id 等列。temp 中的 ID 和 legend 中的advent_id 相似。account_id 列是空的,我想将相关的 account_id 从 temp 导入到图例。我正在使用 PostgreSQL。

我正在尝试以下查询,但它没有按预期工作。正在创建新行,并且将 account_id 添加到新行中,而不是添加到相应的advent_id。

insert into legend(account_id)
select temp.account_id
from legend, temp
where legend.advent_id=temp.id;

它将account_id插入错误的位置,而不是相应的advent_id。

我正在使用以下查询进行检查:

select advent_id, account_id from legend where account_id is not null;

我的插入查询中到底有什么问题?

4

1 回答 1

8

如果您尝试修改现有行,而不是添加行,那么您需要一个UPDATE查询,而不是一个INSERT查询。

可以使用连接表作为UPDATE;的目标。在你的例子中:

UPDATE legend
JOIN temp
SET legend.account_id = temp.account_id
WHERE(temp.id = legend.advent_id);
于 2012-06-06T23:20:37.443 回答