我需要合并两个表。这个想法是表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
答案 0 :(得分:1)
一种方法是union all
和not 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
);