2014-10-01 2 views
0

У меня есть 2 стола - products и product_categories.UPDATE стол со специфическим условием

Эти таблицы ПРИСОЕДИНЯЙТЕСЬ НА products. product_id = product_categories. product_id.

Я хочу ОБНОВИТЬ поле published в таблице products которые имеют состояние product_categories.product_categories = 100.

+0

bjvui_virtuemart_product_categories не имеет столбец с именем bjvui_virtuemart_product_categories –

ответ

0

Попробуйте

UPDATE bjvui_virtuemart_products as prod 
    INNER JOIN bjvui_virtuemart_product_categories as cat 
    ON prod.virtuemart_product_id =cat.virtuemart_product_id 
SET prod.published ={value} 
WHERE cat.virtuemart_category_id=100 
+0

# 1054 - Неизвестный столбец «кошачьи .bjvui_virtuemart_product_categories 'in' where clause ' – dantey89

+0

Вы уверены, что поле в предложении where является «bjvui_virtuemart_product_categories», то есть имя таблицы – AndreaPosadino

+0

для 100% http://joxi.ru/X74rVIwyTJDQAlfsWns – dantey89

0

Использование UPDATE с JOIN

UPDATE TABLEA a 
JOIN TABLEB b ON a.join_colA = b.join_colB 
SET a.columnToUpdate = [something] 
WHERE a.someColumn = [some_value] 

В вашем случае

UPDATE bjvui_virtuemart_products AS p 
INNER JOIN bjvui_virtuemart_product_categories AS c ON 
p.virtuemart_product_id = c.virtuemart_product_id 
SET p.published = "your_value" 
WHERE c.virtuemart_category_id = 100; 
+1

Я думаю, что было бы более полезно для op и других посетителей, когда вы добавите некоторое объяснение своей интенции. – reporter

+0

добавил @reporter :) –

Смежные вопросы