在访问连接表中使用 sql 获取前 10 名

GET top 10 using sql in access joining tables

这些是我的 table:

table 业务

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

table 用户

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

table 食物

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

table FOOD_RATING

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

我想根据平均评分获得前 10 名食物:

RANK|FOODNAME|FODPRICE|AVGRATING|BUSINESSUSERNAME
 1   |CAKE     |5       |4        |Res1
 2   |SHAKE    |3       |4        |Res2
 3   |COLA     |3       |1        |Res1
 .
 .
 .
10

编辑:添加SELECT TOP 10

ORDER BYGROUP BY之后

SELECT TOP 10 FOOD.FOODNAME, FOOD.FOODPRICE
 , IIF(Round(Avg(FOODRATING), 1) IS NULL, 0, Round(Avg(FOODRATING), 1)) AS FOODAVGRATING
FROM FOOD
LEFT JOIN FOOD_REVIEW ON FOOD.FOODID = FOOD_REVIEW.FOODID
WHERE (((FOOD.BUSINESSUSERNAME) = "someusername"))
GROUP BY FOOD.FOODNAME, FOOD.FOODPRICE
ORDER BY IIF(Round(Avg(FOODRATING), 1) IS NULL, 0, Round(Avg(FOODRATING), 1)) DESC;