Есть задача обновить поле в таблице минимальным значением другого поля из связанной таблицы.
Если в подзапрос передать конкретное значение, то работать будет:
update master_products
set price_min = (
select MIN(product_prices.price)
from product_prices
where product_id in (
select id from products where published=1 and available = 1 and master_product_id = 71
)
)
where published = 1 and available = 1;
Но тогда мне придется в цикле перебирать все записи таблицы master_products и вызывать этот запрос передавая конкретный id вместо значения 71.
А мне нужно, чтобы поле master_products.id подставлялось вместо 71. Можно ли так сделать?
update master_products
set price_min = (
select MIN(product_prices.price)
from product_prices where product_id in (
select id from products where published=1 and available = 1 and master_product_id = master_products.id
)
)
where published = 1 and available = 1;
у меня что то не отрабатывает такой запрос. Пишет, что price_min не может быть null.