情況是這樣的。我有兩個表,就像這樣:取一個值,把它anothers表值,並計算總和
TABLE (haveToBuy):
+--------------------+
| product | quantity |
+--------------------+
| cake | 3 |
| egg | 2 |
| milk | 5 |
+--------------------+
TABLE (alreadyBough):
+--------------------+
| product | quantity |
+--------------------+
| cake | 1 |
| egg | 0 |
| milk | 5 |
+--------------------+
現在我想更新(alreadyBough)表的量值,所以它看起來是這樣的:
TABLE (haveToBuy):
+--------------------+
| product | quantity |
+--------------------+
| cake | 3 |
| egg | 0 |
| milk | 5 |
+--------------------+
TABLE (alreadyBought):
+--------------------+
| product | quantity |
+--------------------+
| cake | 1 |
| egg | 2 |
| milk | 5 |
+--------------------+
(2個雞蛋從表移動(haveToBuy)到TABLE(alreadyBought))。查詢會是什麼樣子?我怎樣才能解決這個查詢:
$query = mysql_query ("INSERT INTO alreadyBought (quantity) SELECT quantity FROM haveToBuy WHERE product='$productID' ");
我認爲你需要使用'update'查詢,因爲在'alreadyBought'表將有蛋入境,無論其是否0,但該值已經存在,除非你有一定的保證,以便使用'update'查詢 –
只有一個過程永遠不會對你的餐桌做任何改變(而且你的購物清單上有一組代理商可以並行運作,對嗎?),你需要防範在兩種流程同時(或幾乎同時)購買雞蛋的情況下,通過某種方式確保「雙重購買」具有與「單一購買」相同的效果。而且,當購買雞蛋時,您還需要確保*兩個*表都被修改,或者*兩個*都不會被修改 - 以防過程在中間死掉,或者某個表更新由於某種原因而失敗。 – Peter