繁体   English   中英

MYSQL - 查询单个查询中多个用户的评级平均值

[英]MYSQL - Querying averages of ratings for multiple users in a single query

我正在建立一个网站,其中一个方面涉及教师和评级教师。 评分由学生进行,当学生正在寻找教师时,我希望他们能够通过包括他们的平均评分来筛选教师。

每位教师的每个学生的每个评分都会将他们评价教师的星号数量放入数据库中。 我已经有一个查询可以计算每位教师的平均星数

    SELECT AVG(star) AS Average FROM rating_table WHERE  type = 'Member_review' 
    AND teacher_id = id_number

id_number显然是教师的user_id。

当人们在所有教师的搜索页面上时,我希望他们能够通过评级和其他标准过滤教师。 我可以将这个查询放在一个foreach循环中并让它运行每个教师ID,但我怀疑这对服务器来说是一个巨大的拖累 - 有没有办法让我把一串逗号分隔的id放入查询并找到每个人的平均评分? 我确实尝试过这个查询但它没有用

    SELECT AVG(star) AS Average FROM rating_table WHERE  type = 'Member_review' 
    AND teacher_id IN(1,2,3, etc...) 

有没有办法让我可以获取查询以获取每个教师user_id的平均值并让它出现这样的东西?

    Average     Teacher ID
    3.5         6
    4.6         2

是。 这是一个基本的聚合查询:

SELECT AVG(star) AS Average, teacher_id
FROM rating_table
WHERE type = 'Member_review' and
      teacher_id IN(1,2,3, etc...) 
group by teacher_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM