将不匹配的ID插入列的更快捷方式

时间:2013-08-09 22:14:07

标签: sql postgresql

是否有更快捷的方法来获取table1中存在但在table2中不存在的ID并将其插入table2

insert into table2 (id) 
select id 
from table1 
where table1.id not in (select id from table2)

1 个答案:

答案 0 :(得分:0)

除了使用in运算符的解决方案外,请尝试exists一个

select id
from table1 t1
where not exists (
    select 1
    from table2
    where id = t1.id 
)

如果子查询返回空集not exists,则计算结果为true

outer join

select id
from
    table1 t1
    left join
    table2 t2 on t1.id = t2.id
where t2.id is null

使用explain analyze进行比较