基于Count()从多对多表更新表

时间:2009-06-16 08:21:39

标签: mysql

我有一组由人组成的表,以及group_idperson_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`;

1 个答案:

答案 0 :(得分:2)

UPDATE `group`
SET `group`.`count` = (
    SELECT COUNT(*)
    FROM   `group_person`
    WHERE  `group_person`.`group_id` = `group`.`id`
)