Надеюсь, я объясню это достаточно ясно: в нашей базе Magento у меня есть следующие два запроса, которые мне нужно комбинировать (я новичок SQL):
update catalog_product_entity_text
set 'value' = CONCAT('', 'value')
where entity_id in (select product_id from catalog_category_product where category_id = 975)
and attribute_id = 57;
select 'value' from catalog_product_entity_text
where entity_id in (select product_id from catalog_category_product where category_id = 571)
and attribute_id = 551;
Пустое значение в функции CONCAT в первом запросе должно содержать значение из второго запроса, которое соответствует текущему объекту entity_id в цикле.
Как я могу это сделать? Большое спасибо.
ОБНОВЛЕНИЕ: я читаю о соединениях, и похоже, что левое внешнее соединение в одной таблице будет таким, хотя я все еще не совсем понятен относительно правильного синтаксиса и использования.
Здесь черновик, который даже не проходим:
select 'value' from catalog_product_entity_text
as mobile_description
where attribute_id = 551
and entity_id in (select product_id
from catalog_category_product
where category_id = 571)
join on entity_id;
Как я могу улучшить это, чтобы сделать его эффективным?
Я пытаюсь присоединиться к строкам с атрибутом_id = 57 & attribute_id = 551, получая столбец value
от каждого, для тех, у кого есть тот же объект entity_id, чтобы я мог обновить value
строки с атрибутом_id = 57, чтобы включить значение соответствующая запись с атрибутом_id = 551.
Я бы сказал, что что-то подобное должно работать. Конечно, первая резервная база данных. Это чистый вопрос SQL.
update catalog_product_entity_text
set 'value' = CONCAT((select 'value' from catalog_product_entity_text
where entity_id in (select product_id from catalog_category_product where category_id = 571) and attribute_id = 551), 'value')
where entity_id in (select product_id from catalog_category_product where category_id = 975)
and attribute_id = 57;
Если это не помогает, дайте мне знать, но вы можете быстро взглянуть на этот ответ