2012-11-27 52 views
0

這裏是我的更新查詢:未知列但它確實存在?

UPDATE products 
SET products_status = 0 
WHERE (`products`.`products_id` = `products_to_categories`.`products_id` 
     and `products_to_categories`.`categories_id` = 114) 

我得到的錯誤是:

1054 - 未知列在 'where子句'

但是,當 'products_to_categories.products_id'我去了表products_to_categories有一個列products_id。

我在做什麼錯?

+1

您沒有選擇從products_to_categories表什麼。您需要添加一個子查詢來選擇要匹配的products_to_categories.products_id。 – jle

+0

但是在我的Where子句中不是嗎? – Sackling

+0

您要告訴UPDATE語句要做的是更改產品表。 products_to_categories表不在此查詢範圍之內,這就是爲什麼你會收到錯誤。 – markp3rry

回答

1

你需要查詢大概是這樣的一個:

UPDATE products 
SET products_status = 0 
WHERE products_id IN 
(SELECT products_id 
FROM products_to_categories 
WHERE categories_id = 114) 
0

得到它:

UPDATE products 
SET products_status = 0 
WHERE (SELECT products_id FROM products_to_categories 
WHERE(
`products`.`products_id` = `products_to_categories`.`products_id` and `products_to_categories`.`categories_id` = 114)) 
+0

這仍然是無效的SQL查詢語法。查看我的建議查詢。 –

+0

是的,我可以看到你爲什麼更漂亮。看起來更有用。無論如何,我的確工作。謝謝你的幫助。 – Sackling

相關問題