就是这种情况。我有两张桌子,像这样:
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' ");
答案 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"
小心使用类似此查询的内容,因为在查询中提交之前需要验证所有值,并确保数据类型相同