table A
=======
Name | Qty
------------
AA | 1
BB | 2
CC | 3
DD | 4
table B
=======
Name | Qty
------------
AA | 0
BB | 0
EE | 0
ZZ | 0
我需要这个作为resoult
Name | Qty
------------
AA | 1
BB | 2
CC | 3
DD | 4
EE | 0
ZZ | 0
怎么做?我尝试使用联盟,但没有获得转发
答案 0 :(得分:0)
这似乎是一个优先级查询,您希望记录来自a
,如果不存在,则来自b
。这是一种方法:
select a.*
from a
union all
select b.*
from b
where not exists (select 1 from a where a.name = b.name);
答案 1 :(得分:-1)
如果您希望联合合并总计。
SELECT Name, SUM(Qty)
FROM (
SELECT Name, Qty
FROM TableA
UNION ALL
SELECT Name, Qty
FROM TableB
) T
GROUP BY Name
确保使用UNION ALL
,这样就不会丢失重复的行。