Mam zapytanie które aktualizuje średnią ocenę filmu na podstawie głosów w tabeli votes
Powiedzmy ze chcę zaaktualizować film o id=1
UPDATE movies SET rating=(SELECT ROUND(AVG(vote),1) FROM votes WHERE movie_id=1) WHERE id=1
to działa jak powinno lecz chciałem to zrobić inaczej
UPDATE votes v, movies m SET m.rating=ROUND(AVG(v.vote),1) WHERE m.id=1 AND v.movie_id=1
tylko że wtedy dostaję błąd #1111 - Invalid use of group function
Proszę o podpowiedź jak sobie z tym poradzić.
na wszelki wypadek podam jak wygląda tabela votes
CREATE TABLE IF NOT EXISTS `votes` ( `movie_id` int(11) NOT NULL, `vote` tinyint(4) NOT NULL, KEY `movie_id` (`movie_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;