Как я могу просмотреть все значения, которые изменил мой запрос на обновление?в MySQL - PullRequest
0 голосов
/ 14 мая 2019

Эй, ребята, у меня новая проблема с моим sql ...

Я пытаюсь обновить все статьи, которые относятся к определенной категории в моем магазине посуды.

Я создал запросдля этого:

update s_articles_prices
INNER JOIN s_articles on s_articles_prices.articleID=s_articles.id
INNER JOIN s_articles_supplier on s_articles.supplierID=s_articles_supplier.id
INNER JOIN s_articles_details on s_articles.id=s_articles_details.articleID
SET price = price + 10
WHERE s_articles_supplier.name="category name"

Теперь я хотел бы знать, какие значения обновил мой запрос ...

У меня тоже есть запрос на выборку, могу ли я соединить эти два запроса, чтобы они точно отображалисьте таблицы, которые я обновил с помощью моего запроса на обновление?

Вот мой выбор:

SELECT s_articles.id as aid, s_articles.name as aName, s_articles.supplierID as sID, s_articles_prices.pricegroup as pricegroup, s_articles_prices.price as price, s_articles_supplier.name as sName, s_articles_details.ordernumber as sku
FROM s_articles
INNER JOIN s_articles_prices on s_articles.id=s_articles_prices.articleID
INNER JOIN s_articles_supplier on s_articles.supplierID=s_articles_supplier.id
INNER JOIN s_articles_details on s_articles.id=s_articles_details.articleID
WHERE s_articles_supplier.name="category name"

Я хотел бы иметь вывод, аналогичный выбору, чтобы я мог проверитьс первого взгляда, если мое обновление сработало

Спасибо, что уделили время:)

1 Ответ

0 голосов
/ 14 мая 2019

С помощью DiarSelimi и RaymondNijland я смог решить свою проблему.

Теперь я сделал это так:

У меня есть сценарий SQL с этими частями:

создать временную таблицу:

CREATE TEMPORARY TABLE snapTable 
SELECT s_articles.id as aid, s_articles.name as aName, s_articles.supplierID as sID, s_articles_prices.pricegroup as pricegroup, s_articles_prices.price as price, s_articles_supplier.name as sName, s_articles_details.ordernumber as sku
FROM s_articles
INNER JOIN s_articles_prices on s_articles.id=s_articles_prices.articleID
INNER JOIN s_articles_supplier on s_articles.supplierID=s_articles_supplier.id
INNER JOIN s_articles_details on s_articles.id=s_articles_details.articleID
WHERE s_articles_supplier.name="category name";

запустите мое обновление:

update s_articles_prices 
INNER JOIN s_articles on s_articles_prices.articleID=s_articles.id 
INNER JOIN s_articles_supplier on s_articles.supplierID=s_articles_supplier.id 
INNER JOIN s_articles_details on s_articles.id=s_articles_details.articleID 
SET price = price + 10 
WHERE s_articles_supplier.name="category name";

и сравните мою временную таблицу с живой таблицей:

SELECT aid, sku, snapTable.price, s_articles_prices.price as newPrice 
FROM snapTable
INNER JOIN s_articles on snapTable.aid=s_articles.id
INNER JOIN s_articles_prices on snapTable.aid=s_articles_prices.articleID;

и у вас будет что-то подобное:

aid|sku     |price            |newPrice
-------------------------------------------------
2  |number  |202.60504201681  |212.60504201681
2  |number  |202.60504201681  |212.26050420167996

может быть, это поможет кому-то еще:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...