의 행동에 의해 DISTINCT/GROUP을 얻을 수 있습니다 : 오류 번호 : 1242하위 쿼리는 1 개 이상의 행을
어떻게 내가 오류를 얻을 UPDATE 질의
을 반환하기 때문에 내 UPDATE
의 하위 쿼리 생산 반복 값. 나는 과 GROUP BY
가 SELECT
쿼리에서 반복 값을 제거 할 수 있음을 알고 있습니다. UPDATE
쿼리에서 어떻게 해결할 수 있습니까? 내가 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
에서이 작업을 수행 할 수 있습니다 (필요한 경우 내 쿼리는 다음
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=?
한다고 가정이다 검색어)
product_stock_id product_id product_size product_quantity 10 216 1 1 11 216 5 1
그러나 내 UPDATE
하위 쿼리에서 위의 데이터 (고유 값)를 검색하는 방법은 무엇입니까? 내 UPDATE
검색어에 DISTINCT
키워드를 사용하거나 다른 것을 사용할 수 있습니까? 데이터가 진정으로 동일한 경우
예, 'AFTER INSERT ON' product_purchases'trigger'를 사용하고 있습니다. 그래서 product_purchases 테이블이 필요합니다. 여기 내 [change_stock_when_purchases TRIGGER] (http://pastebin.com/tcANMhen). 나는 여기서 GROUP BY를 간접적으로 사용한다. 하지만 같은 오류를 보여줍니다 – Imran