2016-08-10 5 views
0

2つの異なるテーブルの2つの列を合計するにはどうすればよいですか?2つの異なるテーブルの2つの列の合計を作成するにはどうすればよいですか?

私の場合、私は別のテーブルの2つの列を合計し、追加された値を返す最初のテーブルにします。

例:

Tbl_one

colum ID | colum Point 
1  | 1000 
2  | 2000 

tbl_two

colum ID | colum Point 
1  | 10000 
2  | 5000 

RESULT

Tbl_one

私はこのクエリを試してみましたが、それは

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

結果がエラーに非常にうまく機能しませんでした:#1054 - 「フィールドリスト」

+1

、なぜこれらの2つの異なるテーブルがとにかくですか? – e4c5

+0

おそらく重複しています - あなたの 'update'ステートメントで' join'を使う必要があります:http://stackoverflow.com/a/15209489/1073631 – sgeddes

答えて

2

通常で不明な列「tbl_2.columY」は、1がselectを使用しますこのため、クエリ:

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

あなたが実際にテーブルを更新する場合は、一つの方法はjoinを使用しています。

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

ただし、集計結果を得るだけであれば、テーブルの更新は極端に見えます。

+1

本当にありがとう、それは完璧に働いていました。 –

0

私はあなたがこれを希望あなたの更新要求にtbl_twoに参加するべきだと思う:

UPDATE tbl_1 INNER JOIN tbl_2 ON tbl_2.ID = tbl_1.ID SET tbl_1.columX= tbl_1.columX + tbl_2.columY 
関連する問題