2017-03-16 80 views
1

我試圖從一個表(user_tranz)獲得聚合值,並且希望存儲以更新/插入到另一個表(用戶)基於用戶的(ID在發現user_tranz 有這些2 MySQL表結構:更新一個基於另一個ID表匹配的MySQL表值基於點聚合的

1-用戶:

id  coin buy added free pay_later renewed pro 
=========== ==== ===== ====== ==== =========== ========== === 
      1 0  0  0  0  0   0  0 
      2 0  0  0  0  0   0  0 
      3 0  0  0  0  0   0  0 

2- user_tranz:

id (AI)  user_id coin buy added free pay_later renewed pro 
========== =========== ==== ===== ====== ==== =========== ========== === 
     99   1 10 5  10  10  20   50  100 
     98   2 5 5  10  10  20   50  10 
     97   3 5 5  10  10  20   50  25 
     96   3 0 0  10  10  20   50  10 
     95   3 10 5  0  0  20   50  5 
     94   2 10 5  10  10  20   50  10 

到目前爲止,我知道這可以通過這樣的完成(LEFT JOIN與COALESCE()),但我不知道如何在一次使用連接

得到的值比存儲多個聚集

預期結果:

Users: 
    id  coin buy added free pay_later renewed pro 
=========== ==== ===== ====== ==== =========== ========== === 
    1  10 5  10 10  20   50  100 
    2  15 10 20 20  40  100  20 
    3  15 10 20 20  60  150  40 
+0

你能描述一下你期望的結果嗎? –

+0

@TamasRev - 新增預期的結果 –

回答

0

如何:

UPDATE users u 
SET u.coin = (
    SELECT SUM(ut.coin) 
    FROM user_tranz ut 
    WHERE ut.user_id = u.id 
), ... 

您可以使用子查詢來確定要在更新查詢中插入的值。

相關問題