php - 子查询返回多行

标签 php mysql

我正在用 php 构建一个销售点软件

所以我将购物车中的商品保存在名为 tempsales 的临时表中,然后使用新数量更新所有商品的数量。只有一个查询,使用下面的代码给我子查询,返回:

More than one row error

UPDATE items SET quantity = quantity -
    (SELECT quantity FROM tempsales ORDER BY id ASC) 
WHERE id  IN 
    (SELECT id FROM ORDER BY I'd ASC)

最佳答案

您似乎想根据 tempsales 表中的行来更新 items 表中的一大堆行。我认为您想匹配 id 值。这需要在 UPDATE 查询中使用 JOIN 语法,如下所示。

   UPDATE items
     JOIN tempsales ON items.id = tempsales.id
      SET items.quantity = items.quantity - tempsales.quantity

关于php - 子查询返回多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44378126/

相关文章:

php - 需要Sql查询

php - 使用 PHP 在 mysql 中删除不起作用

php - 如何在附加并发送文件后取消链接? (使用 Mail::queue 时)

mysql - 在 Mysql 中将字符串拆分为单个值

mysql - 使用计算值或触发器用同一表中不同行的数据更新行?

mysql error 1054 列未被请求或不存在

php - 使用 JSMin.php 缩小 Javascript

javascript - 如果满足 PHP 条件,如何运行 CSS 关键帧?

mysql - mySQL 中特定字段更新时触发

php - 使用 PHP 进行 CSV 到 MySQL 的 500 内部服务器错误