考虑下表:
users messages
----------------- -----------------------
user_id messages msg_id user_id content
----------------- -----------------------
1 0 1 1 foo
2 0 2 1 bar
3 0 3 1 foobar
4 3 baz
5 3 bar
我想计算每个用户的消息数量并将结果插入 users.messages,如下所示:
users
-----------------
user_id messages
-----------------
1 3
2 0
3 2
我可以使用 PHP 来执行这个操作,伪:
foreach ($user_id in users) {
$count = select count(msg_id) from messages where user_id = $user_id
update users set messages = $count
}
但是与直接在 MySQL 中执行的一个查询相比,这可能非常低效:
UPDATE users SET messages = (
SELECT COUNT(msg_id) FROM messages
)
但我确信这不是一个正确的查询。因此,任何帮助将不胜感激:-)