将两个表合并为一个具有额外属性的表

时间:2016-11-07 23:46:26

标签: postgresql

我有两张相同的表A和B. B有一个额外的属性,它保存了布尔值。我想在A中插入非相同的值到B中,并将B中所有新添加的A值的布尔属性设置为false。这是我目前的工作

表A(id,first,last) 表B(id,first,last,present *) * present是布尔值

插入B  (SELECT * FROM A     哪里不存在(         SELECT * FROM B             WHERE id = A.id AND             first = A.first AND             最后= A.last)  )

这会将值添加到B中,但会将其显示为空白/ null。如何将所有新添加的值赋值为B。

1 个答案:

答案 0 :(得分:0)

我很亲密!

INSERT INTO B(SELECT *,false FROM A WHERE not exists(SELECT * FROM B WHERE id = A.id AND first = A.first AND last = A.last))

我需要在SELECT语句开头的SELECT *之后添加“,false”