Это был мой предыдущий question. Я не могу решить проблему. Я обновляю свой код и косвенно использую GROUP BY
. но та же проблема показывает. Возвращает дублирующиеся значения подзапроса. На самом деле я сделал TRIGGER, поэтому я думаю, что если показать триггер, будет ясно пониматьОшибка # 1242 Подзапрос возвращает более 1 строки при обновлении
--
-- Triggers `product_purchases`
--
DROP TRIGGER IF EXISTS `change_stock_when_purchases`;
DELIMITER //
CREATE TRIGGER `change_stock_when_purchases` AFTER INSERT ON `product_purchases`
FOR EACH ROW BEGIN
DECLARE X INTEGER;
SET X = (SELECT product_size FROM product_stock WHERE product_id = NEW.product_id);
IF NEW.product_size =X THEN
UPDATE
product_stock as S1
INNER JOIN
(
SELECT
S.product_stock_id,I.quantity
FROM
product_stock AS S
INNER JOIN
product_purchase_item AS I
ON
S.product_id=I.product_id AND S.product_size=I.product_size
INNER JOIN
product_purchases AS P
ON
I.product_purchase_item_id=P.product_purchase_item_id
WHERE
P.product_purchase_id=NEW.product_purchase_id
GROUP BY
S.product_stock_id
)
AS M
ON
S1.product_stock_id=M.product_stock_id
SET
S1.product_size_quantity=S1.product_size_quantity+M.quantity;
ELSE
INSERT INTO
product_stock (product_id,product_size,product_size_quantity)
SELECT
product_id,product_size, quantity
FROM
product_purchase_item
WHERE
product_purchase_item_id=NEW.product_purchase_item_id;
END IF;
END
//
DELIMITER ;
Проблема шоу, когда это обновление же product_id
«s отличается product_size
на product_stock
Некоторые примеры данных поможет. Один вопрос - на вашем внутреннем соединении, где предложение должно содержать product_too? например, P.product_purchase_id = NEW.product_purchase_id И s.product_id = NEW.product_id. Надеюсь, что это помогает –
@AndaIancu Я также добавить \t S.product_id = NEW.product_id \t \t \t И \t \t \t S.product_size = NEW.product_size но та же проблема – Imran
Рассмотрим предоставить таблицы схемы и примеры данных. Это может значительно улучшить ваши шансы получить ответ, который вы ищете. – peterm