首页 > 解决方案 > MYSQL 在单个查询中选择电影和投票平均值

问题描述

我有两个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

标签: mysqlsql

解决方案


您的查询看起来不错,您只是缺少一个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子句中声明:这适用于您从中选择的所有列movies。另一方面,votes.starCount由 function 聚合AVG,因此它不需要是GROUP BY子句的一部分。


推荐阅读