2014-04-14 119 views
1

我想計算每個用戶的平均評分。平均評分計算mysql php

我有三張桌子。

表評級

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和順序表做=驅動程序表ID

這意味着

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

嘗試使用建設性的字段名稱。所有三個表都有ID,只是讓事情變得混亂。 –

+0

我已經更新我的問題在這裏確實是驅動程序表ID @AzizSaleh – user3533255

回答

0

如果order.did是用戶ID,然後

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

我已經更新我的問題在這裏確實是驅動程序表ID – user3533255

+0

所以group by user_id – Alex

+0

其中是user_id? – Alex