Как обновить столбец mutliple в одном запросе MySQL для нескольких таблиц? - PullRequest
0 голосов
/ 29 октября 2018

Мне нужно обновить строки из таблицы inventory_tbl, которая содержит total_stocks всех размеров, и таблицу product_tbl, которая содержит total_stocks для каждой строки. Насколько это возможно, я хочу, чтобы это было сделано одним оператором запроса UPDATE. Вот что я придумал:

UPDATE (SELECT I.product_no, O.product_sku, I.available_stock AS IA, I.reserved_stock AS IR, P.available_stock AS PA, P.reserved_stock AS PR
       FROM order_tbl O JOIN product_tbl P ON O.product_sku = P.product_sku
       JOIN inventory_tbl I ON P.product_no = I.product_no
       WHERE transaction_no = 2) AS stocks
SET stocks.IA = (stocks.IA - 1),
       stocks.IR = (stocks.IR + 1),
       stocks.PA = (stocks.PA - 1),
       stocks.PR = (stocks.PR + 1);

Обновление: я забыл сказать, что оно основано, если запись существует в order_tbl. Строки inventory_tbl и product_tbl обновляются, если в order_tbl есть строка. Gomene.

1 Ответ

0 голосов
/ 29 октября 2018

Вы можете попробовать ниже, используя update join

UPDATE inventory_tbl I
INNER JOIN product_tbl P ON P.product_no = I.product_no
INNER JOIN order_tbl O ON O.product_sku = P.product_sku

Set 
   I.available_stock = I.available_stock - 1,
   I.reserved_stock = I.reserved_stock - 1,
   P.available_stock = P.available_stock - 1,
   P.reserved_stock = P.reserved_stock - 1
WHERE transaction_no = 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...