取一个值,将其放入其他表值并计算总和

时间:2015-10-20 22:58:17

标签: php mysql

就是这种情况。我有两张桌子,像这样:

TABLE (haveToBuy):
+--------------------+
| product | quantity |
+--------------------+
| cake    | 3        |
| egg     | 2        |
| milk    | 5        |
+--------------------+

TABLE (alreadyBough):
+--------------------+
| product | quantity |
+--------------------+
| cake    | 1        |
| egg     | 0        |
| milk    | 5        |
+--------------------+

现在我想更新TABLE(alreadyBough)的数量值,所以它看起来像这样:

TABLE (haveToBuy):
+--------------------+
| product | quantity |
+--------------------+
| cake    | 3        |
| egg     | 0        |
| milk    | 5        |
+--------------------+

TABLE (alreadyBought):
+--------------------+
| product | quantity |
+--------------------+
| cake    | 1        |
| egg     | 2        |
| milk    | 5        |
+--------------------+

(2个鸡蛋从TABLE(haveToBuy)移动到TABLE(已经买))。查询会是什么样的?我该如何解决这个问题:

$query = mysql_query ("INSERT INTO alreadyBought (quantity) SELECT quantity  FROM haveToBuy WHERE product='$productID' ");

1 个答案:

答案 0 :(得分:0)

我认为你应该写这样的查询

UPDATE alreadybought
SET quantity= (
    SELECT quantity FROM haveToBuy WHERE product="egg"
)
WHERE product="egg"

您可以触发另一个更新查询来设置haveToBuy表中的值以将蛋数量设置为0

要获得2个值的总和,我可以给你一个如下例子,你可以根据需要修改它

select sum(quantity)+sum(newvalue) from message where product="egg"

或者您可以在没有sum的情况下使用它

select quantity+newvalue from message where product="egg"

小心使用类似此查询的内容,因为在查询中提交之前需要验证所有值,并确保数据类型相同