2012-07-25 35 views
0

考慮以下表計數已轉推

users        tweets 
--------------------------------- --------------------------- 
user_id num_retweets sum_retweets tweet_id user_id retweeted 
--------------------------------- --------------------------- 
1         1  1  3 
2         2  1  0 
3         3  1  4 
            4  2  0 
            5  2  0 
            6  3  1 
            7  3  2 
            8  3  0 

我想算num_retweets:的次數一個用戶曾撰文指出,已轉推和sum_retweets一轉推:中用戶推文全部轉發的次數。在UPDATE查詢後預期users表:

users 
--------------------------------- 
user_id num_retweets sum_retweets 
--------------------------------- 
1  2   7 <-- 3 + 4 
2  0   0 
3  2   3 <-- 1 + 2 

建設這兩個查詢任何幫助將大大appreaciated :-)我一直有跨表進行UPDATE的煩惱。

回答

1
UPDATE 
USERS u 
JOIN (
SELECT 
    tweets.user_id, 
    COUNT(IF(tweets.retweeted > 0, 1, null)) as num_retweets, 
    SUM(tweets.retweeted) as sum_retweets 
FROM tweets 
GROUP BY tweets.user_id 
) as t ON t.user_id = u.user_id 
SET u.num_retweets = t.num_retweets, u.sum_retweets = t.sum_retweets 
+0

這很好。謝謝 :-) – Pr0no 2012-07-25 20:59:13