gpt4 book ai didi

mysql - 通过链接两个表计算每个用户的转发次数

转载 作者:行者123 更新时间:2023-11-29 02:03:04 24 4
gpt4 key购买 nike

我有以下表格:

tweets               retweets
----------------- ----------------
user_id retweets user_id (etc...)
----------------- ----------------
1 0 1
2 0 1
1
2
2

我想计算每个用户的转发次数并相应地更新 tweets.retweets:

UPDATE users 
SET retweets = (
SELECT COUNT(*) FROM retweets WHERE retweets.user_id = users.user_id
)

我已经运行此查询两次,但它超时(在不是那么大的表上)。我的查询是否正确?

另见 SQL Fiddle(尽管它显然不允许 UPDATE 语句):http://www.sqlfiddle.com/#!2/f591e/1

最佳答案

此解决方案应该比使用子查询获取每个用户的推文计数快得多(您的相关子查询将为每个 用户执行):

UPDATE users a
LEFT JOIN
(
SELECT user_id, COUNT(1) AS retweet_count
FROM retweets
GROUP BY user_id
) b ON a.user_id = b.user_id
SET a.retweets = COALESCE(b.retweet_count, 0)

关于mysql - 通过链接两个表计算每个用户的转发次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11568187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com