我有两个 mysql 表
投票数:
user
movieid
starCount
电影:
id
title
description
我想获取表中每部电影的id,title,description,avg(starCount)
。
我尝试过:
select id,title,description,avg(starCount)
from movies
join votes on movies.id=votes.movieid
最佳答案
您的查询看起来不错,只是缺少一个 GROUP BY
子句:
select m.id, m.title, m.description, avg(v.starCount)
from movies m
join votes v on movies.id = votes.movieid
group by m.id, m.title, m.description
每个非聚合列都必须在 GROUP BY
子句中声明:这适用于您从电影
中选择的所有列。另一方面,votes.starCount
由函数 AVG
聚合,因此它不需要成为 GROUP BY
子句的一部分。
关于MYSQL 在单个查询中选择电影和投票平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55432897/