#mysql #sql #database
Вопрос:
я попытался выполнить этот запрос:
WITH updateables AS (
SELECT id_product, quantity
FROM products_order
WHERE id_order = 1239 AND state = 10
)
UPDATE product
SET product.stock = updateables.quantity
WHERE product.id_product = updateables.id_product```
Но это троу:
Error Code: 1054. Unknown column 'updateables.id_product' in 'where clause```
Ответ №1:
Определение CTE с помощью этого WITH
предложения не означает неявного присоединения этого CTE к другим таблицам в вашем запросе.
Вам нужно будет использовать СОЕДИНЕНИЕ в своем запросе к CTE:
WITH updateables AS (
SELECT id_product, quantity
FROM products_order
WHERE id_order = 1239 AND state = 10
)
UPDATE product JOIN updateables ON product.id_product = updateables.id_product
SET product.stock = updateables.quantity;
Комментарии:
1. Большое спасибо!