2012-04-26 35 views
2
UPDATE Recipes RE, (
    SELECT SUM((((i.iCaseCost/i.iCaseQty)/i.iUnitSize)/i.iUnitSoldBy)*ri.riQty*ri.riMeasureBy) AS  'RecipeCost' 
     FROM Recipes r INNER JOIN RecipeIngredients ri 
     ON r.rID = ri.rID JOIN Ingredients i 
     ON ri.iID = i.iID 
     WHERE ri.rID = RE.rID 
    ) t 
    SET RE.rYieldCost = t.RecipeCost 

执行时,出现以下错误:“where子句'中的未知列'RE.rID'。MySQL:“更新声明中的未知列where条款”

任何想法?

+0

@亚当斯:这应该是一个答案 – 2012-04-26 19:04:10

回答

1

您的内部派生查询不知道有关外部查询中列的任何内容。尝试将WHERE移动到UPDATE子句中,如WHERE t.rID = RE.rID

+0

工作就像一个魅力。谢谢! – 2012-04-26 19:20:56