2012-07-28 79 views
1

我正在寻求帮助,使用另一个查询的结果更新表中的一列。如何使用另一个mysql查询的结果更新一个表

表名:

saleitems - fields are (itemid,quantity,saledate) 
stockbuffers - fields are (itemid,bufferquantity) 

我得到缓冲量与售项目表以下查询:

SELECT (SUM(saleitems.quantity/6)) * 6 FROM saleitems WHERE saleitems.saledate BETWEEN date_sub(curdate(),interval 180 day) AND NOW() GROUP BY saleitems.itemid 

我想更新从上面的查询结果列缓冲器的数量。任何人都可以帮忙大大地appreaciate。

回答

1

您可以使用更新查询为:

Update stockbuffers set bufferquantity =(SELECT (SUM(saleitems.quantity/6)) * 6 FROM saleitems WHERE saleitems.saledate BETWEEN date_sub(curdate(),interval 180 day) AND NOW() GROUP BY saleitems.itemid) 

它只是一个样本,尚未经过测试。

+0

由于有两个表,查询将如何知道要更新哪一行。我在哪里将联接查询加入表中,因为itemid是这两个表中的公共字段 – mmdel 2012-07-28 14:34:46

+0

该查询将更新stockbuffer表,正如我们在代码中指定的“更新库存缓冲区” – heretolearn 2012-07-28 14:43:14

相关问题