我有三个表,分别称为“ itemorders”,“ mycart”和“ products”。我目前正在将mycart中的项目移动到multiquery中的itemorders表中。
$query = "INSERT into itemorders
(itemID,itemName,itemSize,itemColour,itemPrice,quantity,orderID)
SELECT itemID,itemName,itemSize,itemColour,itemPrice,quantity,
LAST_INSERT_ID() FROM mycart WHERE email='".$email."' ";
如何使用查询中的itemID,itemColour和数量,并使用它们来更新产品表中的数量字段?
答案 0 :(得分:0)
如果您的UPDATE INNER JOIN
表中还有一个itemorders
列,则可以使用AUTO_INCREMENT
(https://dev.mysql.com/doc/refman/5.5/en/update.html)。
类似的东西:
UPDATE products p
INNER JOIN itemorders i ON p.itemID = i.itemID AND p.itemColour = i.itemColour
SET p.quantity = p.quantity - i.quantity
WHERE i.ID = LAST_INSERT_ID()
我还没有对此进行测试,因此确保读者处理业务不变性以避免存入负库存数是一种练习。
P.S。另外,还要注意SQL注入攻击(对不良的Bobby Tables插入电子邮件的方式可能会使生活更艰难。https://xkcd.com/327/),我建议您研究PDO http://php.net/manual/en/pdostatement.bindvalue.php。