2016-04-24 33 views
1

"quantity"と "reference"という同じ列の2つの同一のテーブルがあります。次のようにこれらの列の値が記述されている:mySQL 2つの異なるテーブルの2つの値の合計

table_1 
reference quantity 
TS00001  235 
TS00002  400 
TS00003  850 
... 

table_2 
reference quantity 
TS00001  670 
TS00002  210 
TS00003  150 
... 

私はテーブルと出力各マッチした参照IDなどの数量フィールドの合計に参加する必要があります。

reference total_quantity 
TS00001  905 
TS00002  610 
TS00003  1000 
... 

私がしてきましたLEFT JOINや他の方法を試してみましたが、私はすぐにどこにも行きませんので、誰かが私を正しい軌道に導く時間を惜しみなければ、私はとても感謝しています。ありがとう。

答えて

1

は、次の2つのテーブルをUNIONする必要があります。

SELECT reference, SUM(quantity) AS total_quantity 
FROM (
    SELECT reference, quantity 
    FROM table_1 

    UNION ALL 

    SELECT reference, quantity 
    FROM table_2) AS t 
GROUP BY reference 

ますが、この2つのテーブルの唯一の1つに含まれている場合でも、reference値のレコードを取得することが保証されているこの方法です。

+0

おかげでそんなにそれは本当に私を助けています。私は完全にこれに間違った方法で近づいていた。再度、感謝します :)。 – d1ch0t0my

0

あなたは一人として両方の列を処理するためにunion all演算子を使用することができます。

SELECT reference, SUM(quantity) 
FROM  (SELECT reference, quantity FROM table_1 
      UNION ALL 
      SELECT reference, quantity FROM table_2) t 
GROUP BY reference 
関連する問題