そこで先日、 3 つの複雑なクエリを組み合わせる方法についてこの質問をし、それを行う方法を見つけました。現在、これらのクエリを使用して users テーブルのフィールドを更新しようとしていますが、それを機能させる方法が見つかりません。クエリは次のとおりです。
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'
. 各where句からビットを削除しようとする.user_id=users.id
と、実行されますが、そのユーザーのfield_sumだけでなく、field_sumの合計になります。これを達成する方法はありますか?