0
我想要做的事情必須廣泛適用,但很難描述,所以我會給出我的情況的虛擬版本(假裝帖子是有時合着):MySQL:加入HABTM表格,然後用結果數量更新一列
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
和draft_count
列剛剛添加 - 有成千上萬的posts
和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
ň的draft_count
場數。但我不確定如何將這整個事件作爲UPDATE
聲明中的子句。我已經閱讀了如何在MySQL中進行迭代,我想我可以得到它,所以如果我能夠實現這一點,我認爲我可以爲每個user
做到這一點。此外,雖然我可以在PHP中輕鬆實現此目的,但我需要定期運行此操作,因爲可能只會批量添加這些表(IRL應用程序顯然不是博客)。再次,我已經閱讀了如何創建自定義MySQL函數,並且我認爲如果我能夠讓這個血腥的更新業務工作,哈哈就可以做到這一點。幫助讚賞!
完美!沒有必要迭代。你是我的英雄! – Jonline
我編輯了您的答案,將「tmp.users_id」更改爲「draft_counts.user_id」;沒有這個改變,我無法做這個工作。 – Jonline