Vous avez des champs mal nommés, mais même si vous les corrigez, c'est un bogue dans MySQL cela ne vous laissera pas le faire si vous n'avez pas de base de données par défaut.
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();
Le problème est spécifique à UPDATE avec des requêtes double-imbriquées et pas de base de données par défaut (SELECT ou les requêtes imbriquées ou la base de données par défaut fonctionnent correctement)