UPDATE visualisations v, visualisations_stats vs SET v.ctr = ((SELECT sum(vs2.stats_clicks) FROM visualisations_stats vs2 WHERE vs2.visualisations_id = v.visualisations_id ORDER BY vs2.stats_time DESC LIMIT 100)/(SELECT sum(vs2.stats_displays) FROM visualisations_stats vs2 WHERE vs2.visualisations_id = v.visualisations_id ORDER BY vs2.stats_time DESC LIMIT 100)) WHERE vs.visualisations_id = v.visualisations_id
ale wiadomo - nie działa.
Pytanie jak to zrobić, żeby było dobrze.
Drugi krok. odkryłem JOIN i rozwiązałem problem:
UPDATE visualisations v JOIN (SELECT visualisations_id, sum(stats_clicks) AS clicks FROM visualisations_stats ORDER BY stats_time DESC LIMIT 100) c ON c.visualisations_id = v.visualisations_id JOIN (SELECT visualisations_id, sum(stats_displays) AS displays FROM visualisations_stats ORDER BY stats_time DESC LIMIT 100) d ON d.visualisations_id = v.visualisations_id SET ctr = (c.clicks/d.displays)