Hett,
(не на чем не основаные советы для эксперимента)
Можно сделать подселект в
попытке избежать связки между селектом и тригером.
что-то типа
update balanses
set ...........
where balance.user_id in (select user.id from user where ......)
and .............
если такое сработает, то надо посмотреть не сбились ли индексы.
еше (не совсем по теме) вопрос про LEFT жоинт -- он действительно ЛЕФТ ?
Ниже есть группировка по Ю.ИД,
да и в исерт/селекте наверно должен быть Ю.ИД ????.