間違った名前のフィールドがありますが、それらを修正しても、これはMySQL
のバグです。 デフォルトのデータベースがない場合は、それを実行できません。
update test.object1 p
join (
select ur.id_object1, sum(ur.score * ur.weight) as total, count(*) as weight
from (
select lur.*
from (
select s.id_object1, s.id_object2, s.dt, s.score, 1 as weight
from test.score as s
join test.object1 as o1
using (id_object1)
where s.dt > o1.dt
order by
s.id_object1, s.id_object2, s.dt desc
) as lur
group by
lur.id_object1, lur.id_object1, date(lur.dt)
order by
lur.id_object1, lur.id_object1
) as ur
group by ur.id_object1
) as r
USING (id_object1)
SET p.total = p.total + r.total,
p.weight = p.weight + r.weight,
p.dt = now();
この問題はUPDATE
に固有のものです 二重ネストされたクエリがあり、デフォルトのデータベースがない(SELECT
または、単一ネストのクエリまたはデフォルトのデータベースが正常に機能します)