2016-04-15 2 views
0
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組合についてMySQLのクエリ

それを行うにはどのように
Name | Qty 
------------ 
AA | 1 
BB | 2 
CC | 3 
DD | 4 
EE | 0 
ZZ | 0 

としてこれを必要ですか?私は組合で試してみましたが、リザルトを取得しません。

+0

結果に表示する数量はどのように決定しますか? – Kateract

+0

2番目の表が何であるかを明確にする必要があります。それは最初のテーブルだけで2番目のテーブルが続きます。データが両方のテーブルにある場合、最初のテーブルが優先されますか? – apokryfos

答えて

0

これは、aからのレコードと、存在しない場合はbからのレコードを優先するクエリのようです。 1つの方法は次のとおりです。

select a.* 
from a 
union all 
select b.* 
from b 
where not exists (select 1 from a where a.name = b.name); 
-1

合計で合計をマージする場合は、次のようにします。

SELECT Name, SUM(Qty) 
FROM (
     SELECT Name, Qty 
     FROM TableA 
     UNION ALL 
     SELECT Name, Qty 
     FROM TableB 
    ) T 
GROUP BY Name 

UNION ALLを必ず使用して、重複する行を消さないようにしてください。

+0

コメントを残すにはどうしたらいいですか? –

関連する問題