次のようなテーブルがあります。
CREATE TABLE `UserTmp` (
`user_id` bigint(20) unsigned NOT NULL,
`nb_invit` bigint(20) unsigned DEFAULT '0',
`nb_share` bigint(20) unsigned DEFAULT '0',
`nb_sent` bigint(20) unsigned DEFAULT '0',
`total` bigint(20) unsigned DEFAULT '0',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
そして、私はこのような3つのクエリを実行したい(nb_share、nb_invit、nb_sentを持つためにテーブルごとに1つ):
INSERT INTO UserTmp (user_id, nb_share)
select user_id, count(share_date) as 'nb_share'
from Share
where share_date between '2012-05-21 00:00:00' and '2012-05-28 00:00:00'
ON DUPLICATE KEY UPDATE nb_share=VALUES(nb_share);
nb_share フィールドは、テーブルに存在し、UPDATE を必要とする現在のユーザーの共有数に等しくなります
目標は、アクションの数と、ユーザーが実行したアクションの合計である合計フィールドを持つユーザーのリストを作成することです。
VALUES(nb_share) シームは、現在のユーザーではなく、すべてのユーザーによる nb_share の合計を私に提供します。
これを解決するアイデアはありますか?
ありがとう