У меня есть три таблицы A, A_B и B.
Поскольку mySQL не поддерживает многие отношения, таблицы A и B связаны между собой промежуточной таблицей A_B.
Table A: Table A_B: Table B:
aId aCount aId bId bId bCo
1 10 1 1 1 4
2 15 1 2 2 5
3 20 2 1 3 6
3 2 4 7
3 4
Теперь я хочу добавить bCount каждого bId к каждому связанному aCount.
Желаемый результат:
Table A: Remark:
aId aCount (Current aCount + all related bCounts)
1 19 (10 + 4 + 5)
2 19 (15 + 4)
3 32 (20 + 5 + 7)
Мои знания MySQL слишком базовы.
Я могу создать запрос SELECT, который даст мне результаттаблица, как я хочу, чтобы таблица A выглядела после обновления, но я не могу создать оператор обновления.Все, что я пробовал, приводило к синтаксическим ошибкам или нежелательным результатам.У меня также было одно утверждение, которое могло бы сработать, но его выполнение заняло много времени.Теперь я просто запутался в том, что делать.
Желаемый результат выглядит следующим образом:
SELECT `aId`, aCount + SUM(`bCount`) as `aCount` from `A`
INNER JOIN `A_B` ON `A_B`.`aId` = `A`.`aId`
INNER JOIN `B` ON `B`.`bId` = `A_B`.`bId`
GROUP BY `aId`;
Возможно ли обновление, которое я хочу, даже с одним запросом, или мне нужно несколько (с точки зрения производительности)?
Может кто-нибудь помочь мне с подходом или с созданием утверждений?