我正在做一个食物评论的网页,有一个名为top 10的页面,根据食物评论它将显示前10名。我目前有这个SQL,但它结合了所有的菜肴评分和组合为一盘。这条SQL语句被放置在PHP代码中。SQL语句没有正确分组
SELECT i.path, i.name, AVG(r.review_rating), r.image_id
FROM images i, review r
WHERE r.image_id = i.id
GROUP BY 'r.image_id'
ORDER BY AVG(r.review_rating) DESC
LIMIT 10
欢迎来到Stack Overflow。请尽快阅读[关于]页面和[询问]页面。 “不工作”并不能很好地表征问题。使用SQL,我们确实需要查看查询中每个表的大纲模式,以及一些(2-5?)行数据,并描述了您所看到的以及您想查看的内容。简单地给出表名,列名和样本值而没有正式模式就足够了。 –
GROUP BY子句中'r.image_id'附近的引号是什么?它们似乎是单引号,所以您按照常量字符串进行分组,这可能意味着您只能获得一个组,因为组“列”(值)只有一个值。如果你正在使用MySQL(这是一个好主意,以确定你正在使用SQL问题的数据库管理系统),你可能打算使用''GROUP BY'r'.'image_id''虽然坦率地说我会使用'GROUP BY r.image_id'。 –
而老式的'FROM table1,table2'表示法被SQL-92过时了。你不应该在20年后写成的SQL中使用它。 –