我有一组由人组成的表,以及group_id
,person_id
对的多对多表格。 group
有一个计数列,应该存储每个组中的当前人数。如果可以,我想在一个SQL命令中更新此信息。我想某些子查询会让我完成这个,但我不确定如何。
此查询成功地为我提供了group_ids到其计数的映射
SELECT `group_id`, COUNT(`group_id`) FROM `group-person` GROUP BY `group_id`;
此查询失败,但如果它有效,这将是我正在尝试做的事情
UPDATE `group`,`group-person` WHERE `group`.`id` = `group-person`.`group_id`
SET `group`.`count` = COUNT(`group-person`.`group_id`)
GROUP BY `group-person`.`group_id`;
答案 0 :(得分:2)
UPDATE `group`
SET `group`.`count` = (
SELECT COUNT(*)
FROM `group_person`
WHERE `group_person`.`group_id` = `group`.`id`
)