J'ai deux tables, videos
et videos_ratings
. La table des vidéos a un champ videoid
int (et beaucoup d'autres mais ces champs ne sont pas importants je pense) et beaucoup d'enregistrements. La table videos_ratings
a 3 champs int: videoid
, rating
, rated_by
qui a plusieurs enregistrements (enregistrements multiples pour chaque champs de la table videos
) mais pas pour tous les enregistrements de la table videos
.Système d'évaluation MySQL (calcul de la moyenne à partir de deux tables)
Actuellement, j'ai la requête mysql suivante:
SELECT `videos`.*, avg(`videos_ratings`.`vote`)
FROM `videos`, `videos_ratings`
WHERE `videos_ratings`.`videoid` = `videos`.`videoid`
GROUP BY `videos_ratings`.`videoid`
ORDER BY RAND() LIMIT 0, 12
Il sélectionne tous les enregistrements de la table videos
qui ont une cote dans video_ratings de table et calcule la moyenne correctement. Mais ce dont j'ai besoin, c'est de sélectionner tous les enregistrements de la table videos
, peu importe s'il y a une note pour cet enregistrement ou non. Et s'il n'y a pas de dossiers dans le tableau videos_ratings
pour cet enregistrement videos
particulier, la fonction moyenne devrait afficher 0.
quelqu'un Hope pouvait comprendre ce que je veux ... :)
Merci!