Postgres INSERT INTO有两个选择语句

时间:2015-11-18 21:48:19

标签: sql postgresql

我正在尝试使用两个SELECT查询的结果插入关系表。

表1:

id | url
-------------------------
1  | http://something.com

表2:

id | address
----------------------------
1  | something@something.com

表3:

table1_id | table2_id
---------------------
1         | 1

我正在尝试构建一个由两个SELECT和一个UNION

组合而成的INSERT查询

我一直在努力:

INSERT INTO table3
SELECT id FROM table1
WHERE table1.url = 'http://something.com'
UNION
SELECT id FROM table2
WHERE table2.address = 'something@something.com';

我哪里出错了?我在第二个SELECT上遇到错误,它能够选择第一个ID并将其传递给INSERT,但它试图插入(1,null),即使第二个SELECT本身有效。

1 个答案:

答案 0 :(得分:1)

INSERT INTO table 3
    select A.id, B.id
    from Table1 A 
    cross join Table2 B
    where A.url = 'http://something.com'
      and B.address = 'something@something.com'