Изменение цены сразу в трех таблицах с условием sql
Существуют 3 таблицы со следующими полями:
Orders: idOrder (ключ), Price, status (новый/выполнен);
Services: idPosService (ключ), IdService (индекс), idOrder (индекс), Price;
PriceList: idService (ключ), Service, Price
Необходимо сделать запрос, который изменит цену в прайс-листе и изменит ее в услугах, но при условии, что статус заказа, к которой прикреплена услуга, имеет значение "новый".
Ответы (1 шт):
Автор решения: Andrew Holovko
→ Ссылка
Вы не можете обновлять разные таблицы одним запросом, но можете создавать транзакции, которые будут содержать 3 запроса.
Далее пример, как это делается:
BEGIN TRANSACTION;
UPDATE Orders
SET Price = 100
WHERE status = new;
UPDATE Services
SET s.Price = 'new'
FROM Services s, Orders o
WHERE s.idOrder = o.id
and o.status = 'new';
...