Итак, на днях я задал этот вопрос о том, как объединить три сложных запроса, и нашел способ сделать это. Сейчас я пытаюсь использовать эти запросы для обновления поля в таблице пользователей и не могу найти способ заставить его работать. Вот запрос:
update users set field_sum =(
select sum(field_sum) from (
select sum(field_one) as field_sum
from t_a join t_b on (t_a.bid = t_b.id) where t_b.user_id=users.id
union all
select sum(field_two) as field_sum
from t_c join t_d on (t_c.did = t_d.id) where t_d.user_id=users.id
union all
select sum(field_three) as field_sum
from t_e where t_e.user_id=users.id
) as field_sumT
)
Когда я пытаюсь запустить его, я получаю следующую ошибку: ERROR 1054 (42S22): Unknown column 'users.id' in 'where clause'
. Когда я пытаюсь удалить бит .user_id=users.id
из каждого предложения where, он запустится, но в итоге получит общую сумму field_sum, а не только field_sum для этого пользователя. Есть ли способ сделать это?