2014-03-26 69 views
0

大家上午,MYSQL更新加入

我已經寫了一個SQL查詢來從數據庫中,我想更新,但可以解決如何我把update語句在這裏的所有數據。

SELECT product_id, product_title, prodcat_category_id, category_active, product_active from products 
LEFT JOIN productcategories on products.product_id = productcategories.prodcat_product_id 
LEFT JOIN categories on productcategories.prodcat_category_id = categories.category_id 
WHERE category_active = 0 

enter image description here

我要更新所有這些結果有product_active 0,但我從來沒有做過一個選擇的內部更新語句加入。

+1

外部聯接的更新是難以察覺罕見(和有點奇怪 - 除非「其中X是NULL」出現的地方) – Strawberry

回答

1

試試下面的查詢

Update products set product_active = 0 where product_id IN 
(
SELECT product_id from products 
LEFT JOIN productcategories on products.product_id = productcategories.prodcat_product_id 
LEFT JOIN categories on productcategories.prodcat_category_id = categories.category_id 
WHERE category_active = 0 
); 
1

不用選擇使用連接,而是使用連接進行更新。

update products 
LEFT JOIN productcategories on products.product_id = productcategories.prodcat_product_id 
LEFT JOIN categories on productcategories.prodcat_category_id = categories.category_id 
set product_active = 0 
WHERE category_active = 0