mySQL与Subquery相关

dbr*_*ris 3 mysql join subquery correlated-subquery

试图写一个mysql查询,并在这个问题上遇到很多困难.

我有两个表(项目:关于项目的信息,以及itemReview:项目的评论)

我想要做的是选择属于特定位置的所有项目(这是我的外部查询所做的),然后对于外部查询中的每个项目,获取itemReview表中所有评级字段的平均值

这是我的尝试:

SELECT 
    Item.idDish, 
    Item.dateAdded, 
    Item.dateModified, 
    Item.fidLocation, 
    Item.category, 
    Item.description, 
    Item.price, 
    Item.name, 
    Item.fullImageName, 
    Item.thumbnailImageName, 
    sub.rating
FROM Item 
JOIN (
        SELECT 
            AVG(ItemReview.rating) AS rating 
        FROM ItemReview 
        WHERE ItemReview.fidItem = Item.idItem
    ) AS sub
WHERE Item.fidLocation = '63';
Run Code Online (Sandbox Code Playgroud)

但mySQL说:'where子句'中的未知列'Item.idItem'

任何帮助将非常感谢!! 谢谢!!

Tar*_*ryn 7

您正在尝试访问Item.idItem子查询的内部,但它在那里不可用.你应该使用这样的东西:

SELECT 
    Item.idDish, 
    Item.dateAdded, 
    Item.dateModified, 
    Item.fidLocation, 
    Item.category, 
    Item.description, 
    Item.price, 
    Item.name, 
    Item.fullImageName, 
    Item.thumbnailImageName, 
    sub.rating
FROM Item 
JOIN 
(
    SELECT fidItem, AVG(ItemReview.rating) AS rating 
    FROM ItemReview 
    GROUP BY ItemReview.fidItem
) AS sub
   ON sub.fidItem = Item.idItem
WHERE Item.fidLocation = '63';
Run Code Online (Sandbox Code Playgroud)