Postgres - 仅从一个列插入另一个表中的数据

时间:2017-11-19 12:55:27

标签: sql postgresql

我在Postgres 9.6.3中尝试以下查询

INSERT INTO join_table ("table_1_id", "table_2_id") VALUES
      (7, SELECT "id" from "table_2" where label='Foo Bar');

这会抛出ERROR: syntax error at or near "SELECT" at character 94

我已经看到了insert语句工作中嵌套选择的示例,其中只插入了所选内容。以上查询是否可能?

2 个答案:

答案 0 :(得分:4)

尝试在子查询周围放置parens:

INSERT INTO join_table ("table_1_id", "table_2_id") VALUES
      (7, (SELECT "id" from "table_2" where label='Foo Bar'));

答案 1 :(得分:1)

使用insert . . . selectvalues是不必要的:

INSERT INTO join_table (table_1_id, table_2_id)
    SELECT y, "id" 
    FROM "table_2" 
    WHERE label = 'Foo Bar';

这也允许您从另一个表中插入多行。