2013-07-11 32 views
1

我有兩個表:使用平均colomn的

CARMAKES 
id, name, avg_sold_for 

SALES 
carmake_id, price 

我想要做的是使用一個SQL語句執行以下操作: 對於CARMAKES所有行,該avg_sold_for場應該顯示來自SALES的所有價格字段的平均值,其中carmake_id與來自CARMAKES的給定ID相匹配。

所以與例如:

CARMAKES 
id, name, avg_sold_for 
0, "Toyota", 0 
1, "Nissan", 0 

SALES 
carmake_id, price 
0, 10 
1, 20 
0, 30 
0, 20 

我想更新CARMAKES表是

CARMAKES 
id, name, avg_sold_for 
0, "Toyota", 20 
1, "Nissan", 20 

回答

0

試試這個:

UPDATE CARMAKES 
SET avg_sold_for = (SELECT SUM(price)/COUNT(carmake_id) 
        FROM SALES WHERE CARMAKES.id = SALES.carmake_id) 

OR

UPDATE CARMAKES C 
INNER JOIN (SELECT carmake_id, (SUM(price)/COUNT(carmake_id)) avg_sold_for 
      FROM SALES GROUP BY carmake_id) A ON C.id = A.carmake_id 
SET C.avg_sold_for = A.avg_sold_for 
+0

謝謝,我用你的第一個建議工作得很完美。 –