首页 > 解决方案 > 通过计算 id 在数据库中出现的次数来更新总数

问题描述

所以我想确保在我的 ritten 表中,当 20 作为 id 出现 4 次时 ritten_total 更改为 4 我试过这个:

UPDATE ritten, users
SET ritten_totaal = ritten_totaal + 1;

我还尝试对 ritten_totaal = 后面的 id 求和,导致错误

我有两张表,一张称为 ritten,一张称为 users,他们的链接不是与 id 而是与 rit_cc 现在我想要的结果是,当我向用户的 id 添加新的 rit 时,ritten_total 的总数上升

示例数据(不知道我是否应该这样做):

写:

id       ritten_totaal         rit_cc 
64       1                     GeJo 
65       1                     PeT2 

用户:

id    rit_cc 
4     PeT2 
20    GeJo
SELECT ritten_totaal, u.id 
FROM ritten r 
JOIN users u ON r.rit_cc = u.rit_cc
ritten_totaal id
1             20
1             20
1             21
1             18
1             20
1             20
1             4
1             4
1             19
1             19

所以这个列表中的每 20 个 id 应该增加 ritten_totaal 的值,这个列表中有 4 个 20,所以 ritten_totaal 应该更新到 4。当另一个 rit 被添加到 ritten 时,它应该增加到 5

SELECT COUNT(ritten_totaal)ritten_totaal, u.id
FROM ritten r 
JOIN users u 
ON r.rit_cc = u.rit_cc 
WHERE u.id = 20;
ritten_totaal id
4             20

像这样的东西我需要它来更新每个 id

标签: sqlphpmyadmin

解决方案


我想你想要:

UPDATE users u
    SET ritten_totaal = (SELECT COUNT(*)
                         FROM ritten r
                         WHERE r.rit_cc = u.rit_cc
                        );

推荐阅读