आपके पास गलत नाम वाली फ़ील्ड हैं, लेकिन यदि आप उन्हें ठीक भी करते हैं, तो भी यह 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
या सिंगल-नेस्टेड क्वेरी या डिफ़ॉल्ट डेटाबेस ठीक काम करते हैं)