我有下面这两个表:
用户:
id 7dexpn
=========== ==========
1 0
2 0
3 0
user_pages:
id user_id 7dexpf
========== =========== ==========
99 1 0
98 2 1
97 3 1
96 3 1
95 3 1
94 2 0
我已成功将{(7dexpf)个标记的user_pages聚合}插入到user表(7dexpn)中,并由user_pages(user_id)与用户表(id)匹配
与此查询
update users u join
(select user_id, count(*) as cnt
from user_pages
where `7dexpf` = 1
group by user_id
) uu
on uu.user_id = u.id
set u.`7dexpn` = uu.cnt;
但是如果u。
7dexpn
= 0,查询不会将更新标志恢复为零 最佳答案
将LEFT JOIN
与COALESCE()
一起使用:
UPDATE users u
LEFT JOIN
(SELECT user_id, COUNT(*) as cnt
FROM user_pages
WHERE `7dexpf` = 1
GROUP BY user_id
) uu
ON uu.user_id = u.id
SET u.`7dexpn` = COALESCE(uu.cnt,0);