2012-04-26 55 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