mySQL 相关子查询

本教程将介绍mySQL 相关子查询的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

mySQL 相关子查询 教程 第1张

问题描述

正在尝试编写一个 mysql 查询,但遇到了很多困难.

我有两个表(Item:关于项目的信息,以及 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 相关子查询的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。