Bạn có các trường được đặt tên không chính xác, nhưng ngay cả khi bạn sửa chúng, đây là lỗi trong MySQL
điều đó sẽ không cho phép bạn làm điều đó nếu bạn không có cơ sở dữ liệu mặc định.
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();
Vấn đề là riêng đối với UPDATE
với các truy vấn lồng nhau và không có cơ sở dữ liệu mặc định (SELECT
hoặc các truy vấn lồng nhau hoặc cơ sở dữ liệu mặc định hoạt động tốt)