我想做的事情必须广泛适用,但很难描述,所以我将给出我的情况的虚拟版本(假装帖子有时是合着的):
Table A: Users
id | name |...demographics....| post_count | draft_count
和
Table B: Posts
id | title |...bunch of columns...| is_draft
同时
Table C: Users_Posts
id | user_id | post_id
现在让我们假设刚刚添加了post_count
anddraft_count
列——有数千个posts
and users
。我想填充那些列!我可以做到这一点:
SELECT count(*) FROM `people`
JOIN `users_posts` ON `users`.`id`=`users_posts`.`users_id`
JOIN `posts` ON `users_posts`.`post_id`=`posts`.`id`
WHERE `posts`.`is_draft` = 1 AND `users`.`id`= N
这给了我希望更新user
Ndraft_count
字段的数字。但我不确定如何将整个事情作为语句中的一个子句UPDATE
。我已经阅读了如何在 MySQL 中进行迭代,我想我明白了,所以如果我能让它工作,我想我可以为每个user
. 此外,虽然我可以在 PHP 中轻松实现这一点,但我需要定期运行它,因为可能只会对这些表进行批量添加(显然,IRL 应用程序不是博客)。再一次,我已经阅读了如何创建自定义 MySQL 函数,我想我可以做到这一点,如果我能让这个该死的更新业务工作哈哈。帮助表示赞赏!