UPDATE `group`
SET `group`.`count` = (
SELECT COUNT(*)
FROM `group_person`
WHERE `group_person`.`group_id` = `group`.`id`
)
У меня есть таблица group_ids, людей, и многие-ко-многим таблицу person_id
, group
пар. group
имеет столбец count, который должен хранить текущее количество людей в каждой группе. Я хотел бы обновить эту информацию в одной команде 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`;