LINUX.ORG.RU

MySQL множественный update с агрегацией

 ,


2

1

Приветствую.

Есть таблицы - ученики и кружки/секции.

students
--------
id
name
...

classes
-------
id
title
count_of_students


students_classes
----------------
student_id (FK -> students.id)
class_id (FK -> classes.id)


Какие есть идеи, как можно проапдейтить classes.count_of_students (количество студентов для конкретного кружка) для каждой секции (кружка) одним запросом?


update classes, 
(select count(class_id) as cnt, class_id from students_classes group by class_id) c,
set count_of_students = c.cnt 
where classes.id = c.id

Пальчики еще помнят. По-моему это - самый шустрый вариант, всякие where exists (...)/id in (...) работали как говно, но сейчас может быть починили.

crutch_master ★★★★★ ()
Последнее исправление: crutch_master (всего исправлений: 2)