2015-10-05 42 views
1

這是我的表 表BUSINESSSQL連接兩個表,並計算平均

BUSINESSUSERNAME|BUSINESSPASSWORD|BUSINESSNAME| Res1 |123 |Cafe | Res2 |456 |Foodtruck |

USER

USERNAME|USERPASSWORD|NAME| user1 |123 |mr.1| user2 |234 |mr.2|

FOOD

FOODID|FOODNAME|FOODPRICE|BUSINESSUSERNAME| 
1  |CAKE | 5  |Res1   | 
2  |SHAKE | 2  |Res2   | 
3  |COLA | 3  |Res1   | 

FOOD_RATING

FOODREVIEWID|FOODID|FOORATING|BUSINESSUSERNAME|USERNAME| 
1   |2  |3  |Res2   |user1 | 
2   |2  |5  |Res2   |user2 | 
3   |1  |4  |Res1   |user1 | 
4   |3  |1  |Res1   |user1 | 

我想獲得該表 其中BUSINESSUSERNAME = 「RES1」

FOODNAME|FODPRICE|AVGRATING| 
CAKE |5  |4  | 
COLA |3  |1  | 
+0

選擇一個(MySQL和SQLSERVER,MSACCESS)。也爲什麼businessmenname存儲在食品和food_rating - 這應該可能改造 – amdixon

回答

1

查詢

select f.foodname, f.foodprice, avg(fr.foodrating) 
from food_rating fr 
inner join food f 
on fr.foodid = f.foodid 
group by f.foodname, f.foodprice 
; 

輸出

+----------+-----------+--------------------+ 
| FOODNAME | FOODPRICE | avg(fr.foodrating) | 
+----------+-----------+--------------------+ 
| CAKE  |   5 |     4 | 
| SHAKE |   2 |     4 | 
+----------+-----------+--------------------+ 

sqlfiddle

+0

我有這個代碼,但我無法得到工作的地方 SELECT FOOD.FOODNAME,FOOD.FOODPRICE,ROUND(AVG(FOODRATING),1)as FOODAVGRATING 從食品 LEFT JOIN FOOD_REVIEW ON FOOD.FOODID = FOOD_REVIEW.FOODID GROUP BY FOOD.FOODNAME,FOOD.FOODPRICE WHERE BUSINESSUSERNAME =「東西 –

+0

以及您something'後'缺少endquotes。但你的結構很奇怪。你爲什麼在這兩個表中存儲businessusername? – amdixon

+0

我有4個表是BUSINESS,USER,FOOD,FOOD_REVIEW BUSINESSUSERNAME是我在表BUSINESS中的主鍵,並且在查詢表達式'FOOD.FOODPRICE where BUSINESSUSERNAME =「中獲得」Syntax Error(missing operator)東西「 –