2016-08-10 3 views
0

Wie kann ich die Summe von zwei Spalten von zwei verschiedenen Tabellen machen?Wie kann ich die Summe von zwei Spalten von zwei verschiedenen Tabellen machen?

In meinem Fall möchte ich die zwei Spalten der verschiedenen Tabelle summieren, und in der ersten Tabelle, um den Wert zurückgegeben.

Beispiel:

Tbl_one

colum ID | colum Point 
1  | 1000 
2  | 2000 

tbl_two

colum ID | colum Point 
1  | 10000 
2  | 5000 

RESULT

Tbl_one

colum ID | colum Point 
1  | 11000 
2  | 7000 

habe ich versucht, diese Abfrage, aber es hat nicht sehr gut funktionieren

UPDATE tbl_1 SET tlb_1.columX= tbl_1.columX + tbl_2.columY 

RESULT ERROR: # 1054 - Unknown column 'tbl_2.columY' in 'field list'

+1

warum sind diese zwei verschiedenen Tabellen überhaupt? – e4c5

+0

Duplicate vielleicht - Sie müssen 'Join' in Ihrer' update' Anweisung verwenden: http://Stackoverflow.com/a/15209489/1073631 – sgeddes

Antwort

2

Normalerweise würde man eine select verwenden Abfrage für diese:

select id, sum(point) 
from ((select id, point from tbl_one) union all 
     (select id, point from tbl_two) 
    ) t 
group by id; 

Wenn Sie tatsächlich die Tabelle aktualisieren möchten, eine Methode verwendet join:

UPDATE tbl_1 t1 JOIN 
     tbl_2 t2 
     ON t1.id = t2.id 
    SET t1.Point = t1.Point + t2.Point; 

Allerdings scheint die Aktualisierung der Tabelle extrem, wenn Sie nur die aggregierten Ergebnisse erhalten möchten.

+1

Wirklich danke, es hat perfekt funktioniert. –

0

Ich denke, man sollte mit tbl_two in Ihrer Aktualisierungsanforderung beitreten machen, was diese möchte:

UPDATE tbl_1 INNER JOIN tbl_2 ON tbl_2.ID = tbl_1.ID SET tbl_1.columX= tbl_1.columX + tbl_2.columY 
Verwandte Themen