考虑以下表格
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
:所有用户推文被转发的次数。 users
查询后的预期UPDATE
表是:
users
---------------------------------
user_id num_retweets sum_retweets
---------------------------------
1 2 7 <-- 3 + 4
2 0 0
3 2 3 <-- 1 + 2
有关构建这两个查询的任何帮助都会非常适用:-)我在表格中执行UPDATE
时遇到问题。
答案 0 :(得分: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