mySQL与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';
但mySQL说:’where子句’中的未知列’Item.idItem’
任何帮助将非常感谢!!谢谢!!
解决方法:
您正在尝试访问子查询中的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';
标签:mysql,join,subquery,correlated-subquery 来源: https://codeday.me/bug/20190716/1479700.html