1

Тема: Virtuemart 2 MySQL запрос по артикул, для переноса в др. категорию

условие:
Известны артикулы товара колонка 'product_sku' из таблицы `joomla25_virtuemart_products`
Требуется перенести товар в другую категорию

артикулы товара находится в таблице `joomla25_virtuemart_products` колонка 'product_sku'

категории товаров находятся в таблице `joomla25_virtuemart_product_categories` колонка 'virtuemart_category_id'

связь таблицы `joomla25_virtuemart_product_categories` с таблицей "joomla25_virtuemart_products" идет через колонку virtuemart_product_id, данная колонка присутствует в обеих таблицах.

логика процесса такова... делаем выборку
1) в таблице `joomla25_virtuemart_products` колонка 'product_sku' делаем выборку согласно списку значений (12900, 12903, 12904)
2) на основании данной выборки получаем id товара в таблице `joomla25_virtuemart_products` колонка 'virtuemart_category_id'
3) на основании выборки "virtuemart_product_id" из п.2 выполняем выборку из таблицы `joomla25_virtuemart_product_categories` колонка 'virtuemart_category_id' и присваиваем значение "34"




это то что мне удалось выжать из своей головы.... как эту кучку собрать в нужный запрос ???

UPDATE `joomla25_virtuemart_product_categories` AS `p`,

`joomla25_virtuemart_products` AS `m` SET

WHERE `p`.`virtuemart_product_id` = `m`.`virtuemart_product_id`

UPDATE `joomla25_virtuemart_product_categories` SET

'virtuemart_category_id' = "34"

WHERE `product_sku` IN(12900, 12903, 12904);

2

Re: Virtuemart 2 MySQL запрос по артикул, для переноса в др. категорию

UPDATE `joomla25_virtuemart_product_categories` SET
`virtuemart_category_id` = "34"
WHERE `virtuemart_product_id` IN(...........................................................);

мозгов хватает только построить начал запроса.... а вот как получить  выборку ?? в скобках нужно какой то вложенный запрос написать....

3

Re: Virtuemart 2 MySQL запрос по артикул, для переноса в др. категорию

Вместо двух запросов делаем один обединив обе таблицы.

UPDATE `joomla25_virtuemart_products` AS `p`, `joomla25_virtuemart_product_categories` AS `c` SET
`c`.`virtuemart_category_id` = 34
WHERE `p`.`virtuemart_product_id` = `c`.`virtuemart_product_id`
AND `p`.`product_sku` IN(12900, 12903, 12904);

4

Re: Virtuemart 2 MySQL запрос по артикул, для переноса в др. категорию

Еще раз спасибо огромное ! Я все таки сам добился результата но только двумя отдельными запросами,

вот такими вот:

1) SELECT virtuemart_product_id FROM `joomla25_virtuemart_products` WHERE

`product_sku` IN(00017826, 00012338, 00017894, 00014790)


2) UPDATE `joomla25_virtuemart_product_categories` SET
`virtuemart_category_id` = "51"
WHERE `virtuemart_product_id` IN( 1234, 6666, 3333)


раньше даже  и не думал что смогу начать разбираться в этом деле  smile

буду теперь учиться объединять запросы !