2016-04-19 7 views
0

私は2つのテーブルmysqlのupdateを使って別のテーブルからカウントを取得して、1つのテーブルのカウントを増やす方法は?

1を持っているがbusiness_details

+--------------+--------------++--------------+ 
| msisdn  | total_counts || id   | 
+--------------+--------------++--------------+ 
| 919999999999 |   0 || 2323232 | 
| 918888888888 |   0 || 2323231 | 
| 917777777777 |   15 || 2323233 | 
+--------------+--------------++--------------+ 

あり、別のテーブルには、次のとおりです。users_details

+--------------++--------------+ 
| msisdn  || id   | 
+--------------++--------------+ 
| 919999999999 || 2323232 | 
| 918888888888 || 2323231 | 
| 917777777777 || 2323233 | 
+--------------++--------------+ 

私はテーブルを更新したい 'business_details' と設定total_counts = total_counts +(users_detailsからのカウント_details.msisdn = users_details.msisdnとbusiness_details.id = users_details.id)

誰もが別のテーブルからの二つの条件を一致させることにより、1台のカウントに増分するように助けることができますか?

答えて

1

の文でjoinを使用することが基本的な回答です。

私は、ユーザーテーブルの合計数が行数を参照していると推測しています。これは、joinの前に集約する必要があります:

update business_details bd join 
     (select ud.msisdn, count(*) as cnt 
     from user_details ud 
     group by ud.msisdn 
     ) ud 
     on bd.msisdn = ud.msisdn 
    set bd.total_counts = bd.total_counts + ud.cnt; 
+0

ヘルプ:-) –

関連する問題