0

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

每个学生对每个老师的每次评分都会将他们对老师评分的星数放入数据库中。我已经有一个查询可以计算每个老师的平均星级

    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
4

1 回答 1

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
于 2013-06-18T01:34:16.483 回答