在sql中合并和dedup两个表

时间:2019-07-18 01:35:03

标签: sql

我需要合并两个表。这个想法是表b的得分被默认使用,只有来自表a的行具有相同的组pid,但是不同的得分被添加到表b中。

表a

 group    pid   score   country 
 --------------------------------------
 T1 aa  10.1    US     
 T1 aa  10.1    FR  
 T1 aa  10.1    UK  
 T1 aa  10.1    CS  
 T1 aa  16.2    BR       

表b

 group    pid   score   country 
 --------------------------------------
 T1 aa  10.1    Default     

所需结果:

 group    pid   score   country 
 --------------------------------------
 T1 aa  10.1    Default     
 T1 aa  16.2    BR       

1 个答案:

答案 0 :(得分:1)

一种方法是union allnot exists

select b.*
from b
union all
select a.*
from a
where not exists (select 1
                  from b
                  where b.group = a.group and
                        b.pid = a.pid
                        b.score = a.score
                 );