【发布时间】:2017-09-21 15:59:38
【问题描述】:
如何将条目插入到表 foo 仅来自表 waldo 的 comm_id 而其他列(托管、状态和类型)以静态值添加?
表 foo
comm_id | managed | status | type |
-----------------+---------------+--------------+------+
COMM_11.21.6 | true | NULL | NULL |
COMM_14.15.7 | true | NULL | NULL |
COMM_13.03.9 | true | NULL | NULL |
表沃尔多
comm_id | address | stat_id |
-----------------+---------------+-----------+
COMM_10.10.6 | 12345 | 1 |
COMM_14.15.7 | 78543 | 2 |
TABLE foo 的所需输出
comm_id | managed | status | type |
-----------------+---------------+--------------+------+
COMM_11.21.6 | true | NULL | NULL |
COMM_14.15.7 | true | NULL | NULL |
COMM_13.03.9 | true | NULL | NULL |
COMM_10.10.6 | true | NULL | NULL |
managed = true、status = NULL 和 type = NULL 的值是静态的,所以我只想按值添加它们。并且 COMM_14.15.7 没有添加到 foo,因为那里已经存在 id。
INSERT INTO foo (comm_id, managed, status, type ) VALUES ('id from waldo', 'true', 'NULL', 'NULL' );
上面的查询将静态值插入到表中。
INSERT INTO foo SELECT comm_id FROM waldo WHERE comm_id NOT IN (SELECT comm_id FROM foo);
有什么方法可以操作或组合这些查询,以便我可以将所有 comm_id 从 waldo 获取到 foo 并同时放入静态值?非常感谢您的建议和想法。
【问题讨论】:
标签: sql sql-insert postgresql-9.3