如何使用Postgresql在插入中进行选择?

nukf8bse  于 2022-11-04  发布在  PostgreSQL
关注(0)|答案(2)|浏览(118)

我是postgresql和一般数据库的初学者。我有一个表,其中有一个列product_id。该列中的一些值为空。我需要将这些空值更改为另一个表中的值。
我想做这样的事情:

insert into a(product_id) (select product_id from b where product_name='foo') where product_id = null;

我知道这个语法不起作用,但我只是需要帮助弄清楚它。

5vf7fwbs

5vf7fwbs1#

假设您的表名为“a”,并且有一些空的product_id,但其他列包含数据。
因此,您需要UPDATE,而不是INSERT。您的查询如下所示:

Update a
set product_id = select product_id from b where b.product_name = 'foo' 
Where product_id is null

请确保子查询(select ..from b)返回唯一值。

lf5gs5x2

lf5gs5x22#

请尝试以下内容

INSERT INTO a (product_id)
select product_id from b where product_name='foo';

括号后的where条件错误,即where product_id = null;

相关问题