私がやりたいことは広く適用できるものでなければなりませんが、説明するのは難しいので、私の状況のダミー バージョンを示します (ふりをする投稿は時々共著です)。
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
これにより、 Nのdraft_count
フィールドを更新したい番号が得られます。UPDATE
しかし、このすべてを声明の節としてどのように受け止めればよいかわかりません。MySQL で反復処理する方法を読んだことがありますが、理解できたと思います。これを機能させることができれば、それぞれに対して実行できると思いますuser
。さらに、これは PHP で簡単に実現できますが、定期的に実行する必要があります。おそらく、これらのテーブルへのバッチ追加のみになるからです (IRL アプリケーションは明らかにブログではありません)。繰り返しますが、カスタムの MySQL 関数を作成する方法を読みました。この血まみれの更新ビジネスを機能させることができれば、それを行うことができると思います (笑)。助けてください!