Masz pola nazwane niepoprawnie, ale nawet jeśli je poprawisz, jest to błąd w MySQL
to nie pozwoli ci tego zrobić, jeśli nie masz domyślnej bazy danych.
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();
Problem dotyczy tylko UPDATE
z podwójnie zagnieżdżonymi zapytaniami i bez domyślnej bazy danych (SELECT
lub zapytania z pojedynczym zagnieżdżeniem lub domyślna baza danych działają dobrze)