平均评级计算mysql php

时间:2014-04-14 19:03:50

标签: php mysql

我想计算每个用户的平均评分。

我有三张桌子。

表评级

id |order_id |rate
------------------
1  | 52      |8
2  | 51      |4
3  | 52      |2
4  | 51      |7

表格顺序

这里做的是驱动程序表ID

id |did
------------------
52  | 5 
51  | 7 
35  | 6 
44  | 8 

表驱动程序

id |name 
------------------
5  | test1 
7  | test2 
8  | test3 
6  | test4 

我的SQL查询是

select dr.name,AVG(drate.rate) from `rating` as drate,`order` as ord,`driver` as dr where ord.did=dr.id and drate.order_id=ord.id 

我的查询总是只给出一个结果。

这里我想从评级表中选择平均汇率,但是关系是评级表order_id =订单表ID和订单表did =驱动程序表id

这意味着

order_id(rating table) |id(order table) |id(driver table) |rate
-------------------------------------------------------------------
52                     | 52             |5                |avg(8,2)
51                     | 51             |7                |avg(4,7)

1 个答案:

答案 0 :(得分:1)

如果order.did是用户ID,那么

select order.did, AVG(rate) from rating
join order on order.id = drate.id
group by order.did