我收到一个错误:错误号:1242 子查询返回超过 1 行
因为 MyUPDATE
的子查询产生重复值。我知道DISTINCT
并且GROUP BY
可以删除查询中的重复值。如何在查询中SELECT
修复它。UPDATE
我的查询在这里
UPDATE
product_stock AS S
LEFT JOIN
product_purchase_item AS I
ON
S.product_id=I.product_id AND S.product_size=I.product_size
LEFT JOIN
product_purchases AS P
ON
I.product_purchase_item_id=P.product_purchase_item_id
SET
S.product_size_quantity=S.product_size_quantity+I.quantity
WHERE
S.product_id=?
AND
S.product_size=?
假设,如果我在SELECT
查询中转换它
SELECT
S.*
FROM
product_stock AS S
LEFT JOIN
product_purchase_item AS I
ON
S.product_id=I.product_id AND S.product_size=I.product_size
LEFT JOIN
product_purchases AS P
ON
I.product_purchase_item_id=P.product_purchase_item_id
查询返回
product_stock_id product_id product_size product_quantity 10 216 1 1 10 216 1 1 11 216 5 1
但我需要(只需一个DISTINCT
关键字即可在SELECT
查询中执行此操作)
product_stock_id product_id product_size product_quantity 10 216 1 1 11 216 5 1
但是,如何在我的UPDATE
子查询中检索上述数据(唯一值)?是否可以DISTINCT
在我的UPDATE
查询中使用关键字或类似的任何内容?