2016-04-24 15 views
1

Ich habe 2 identische Tabellen mit jeweils identischen Spalten - "Menge" und "Referenz". Die Werte in diesen Spalten sind wie folgt festgelegt:mySQL Summe von zwei Werten in 2 verschiedenen Tabellen

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

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

Ich brauche die Tabellen und gibt die Summe der Menge Feld für jede entsprechende Referenz ID zB beitreten:

reference total_quantity 
TS00001  905 
TS00002  610 
TS00003  1000 
... 

ich bin Ich versuche LEFT JOIN und andere Methoden, aber ich komme nicht schnell voran. Wenn mir jemand die Zeit nehmen könnte, mich auf den richtigen Weg zu bringen, wäre ich sehr dankbar. Vielen Dank.

Antwort

1

Sie müssen die beiden Tabellen 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 

Auf diese Weise sind Sie garantiert auch einen Rekord für einen reference Wert zu erhalten, wenn diese in nur einer der beiden Tabellen enthalten ist.

+0

Dank viel wirklich, dass hat mir geholfen, so. Ich habe das völlig falsch angegangen. Danke noch einmal :). – d1ch0t0my

0

können Sie den union all Operator verwenden beiden Spalten als eine behandeln:

SELECT reference, SUM(quantity) 
FROM  (SELECT reference, quantity FROM table_1 
      UNION ALL 
      SELECT reference, quantity FROM table_2) t 
GROUP BY reference 
Verwandte Themen