用同一表的数据更新行

时间:2018-06-28 22:21:53

标签: sql postgresql sql-update

我有一个名为item_empresa的全局表,在此表中,我有一些列称为preco,preco_1,然后我们就可以了。 此item_empresa表具有两个ID:id_item和id_empresa 我必须更新id_empresa不同的表数据。例如:

UPDATE item_empresa SET
preco = (SELECT preco FROM item_empresa WHERE id_empresa = 1)
WHERE id_empresa = 2;

我需要一些东西来将preco数据从id_empresa = 1的item_empresa复制到id_empresa = 2的item_empresa的preco数据。 在表item_empresa的所有行中进行此更改。 谁能帮我吗?

1 个答案:

答案 0 :(得分:0)

我相信这里的问题是您的 SELECT 查询返回了多行。我不确定为什么,但是您可能有多个具有相同id_empresa的行。 如果所有这些“重复的”行都具有相同的值,则使用 GROUP BY 条件可能会很有用。

UPDATE item_empresa SET
preco = (SELECT preco FROM item_empresa WHERE id_empresa = 1 GROUP BY id_empresa)
WHERE id_empresa = 2;

如果行的子句不相同,那么您将需要找到一种方法来选择您实际想要的子句。尝试在 WHERE 调用中添加更多条件。