Таблица сравнения SQL Noob в opencart
У меня есть одна таблица под названием VEGAN с номерами моделей, которые я хочу 3800 строк с кодами модели или SKU. вот и все.
В основной таблице oc_products есть 15000 товаров / строк с более чем 20 столбцами. В одном из этих столбцов есть элемент управления для enable, который можно установить в 0 или 1.
Я хочу отключить все продукты в основной таблице oc_products, если их нет в таблице VEGAN, или сначала отключить (установить статус 0) их всех и включить их (установить статус 1), если они находятся в таблице веганов.
До сих пор я придумал это... Я здесь первый таймер.
ПЕРВОЕ ОТКЛЮЧИТЬ ВСЕ...
ОБНОВИТЬ oc_product
ЗАДАВАТЬ status
= '0' ГДЕ 1
затем...
ОБНОВЛЕНИЕ oc_product SET status
= '1'
WHERE 'ocproduct.model' = 'VEGAN.SKU'
Это не работает, и я застрял, пожалуйста, помогите.
2 ответа
Попробуйте этот запрос...
update oc_product set status = 1 where model in (select sku from vegan)
Это предполагает, что oc_product.model
Матчи vegan.sku
,
любой vegan.sku
с соответствием oc_product.model
получите oc_product.status
установлен в 1
,
Для вашего второго заявления об обновлении вы должны сделать что-то вроде:
UPDATE oc_product SET status = '1'
WHERE ocproduct.model IN (SELECT SKU FROM Vegan)
или вы можете использовать альтернативный формат:
UPDATE oc_product SET status = '1'
FROM oc_product
INNER JOIN Vegan
ON oc_product.model = Vegan.SKU