我有两个包含相同列的表。一个是我需要用作中间数据存储器的临时表,另一个是我的最终表。从临时表中,只插入新表中不存在的行。 PostgreSQL
CREATE TABLE scratch_table (
a text,
b text
);
CREATE TABLE final_table (
a text,
b text
);
scratch_table有这三行:
a | b
-----------|------------
'text a 1' | 'text b 1'
'text a 2' | 'text b 2'
'text a 3' | 'text b 3'
和final_table有两行:
a | b
-----------|-----------
'text a 1' | 'text b 1'
'text a 4' | 'text b 4'
我需要编写一个查询,需要在scratch_table所有行,并插入只有那些在final_table中不存在。在final_table年底应该是:
a | b
-----------|-----------
'text a 1' | 'text b 1'
'text a 2' | 'text b 2'
'text a 3' | 'text b 3'
'text a 4' | 'text b 4'
只有该行'text a 4','text b 4'
从scratch_table插入final_table,因为它没有存在过。
请不要指出我使用的数字(1-4)并不表示任何顺序,我只是想区分每行的数据。谢谢!
你有意在a和b列中配对吗?只检查一列就行吗? – Miki 2014-09-25 22:19:55