2012-08-27 151 views
1

這裏是我有我的表設置 -如何更新一個表引用MYSQL中的另一個表?

Products 
_______ 

P_Id Desc 
1  Apple 
2  Orange 
3  Banana 


Categories 
__________ 

P_Id Cat_Id 
1  200 
2  200 
3  205 

現在我需要從表更新字段「說明」字段的「產品」,其中「CAT_ID」字段從表中「類別」等於200。任何幫助將非常感激。

+1

您是否嘗試過的[MySQL文檔(http://dev.mysql.com/doc/refman/5.0/en/update.html)? – lanzz

+0

「現在我需要更新字段'Desc'字段」將其更新爲什麼? –

回答

3

下面是做這件事:

UPDATE Products 
SET `desc` = 'foo' 
WHERE P_id IN (SELECT P_Id FROM Categories WHERE Cat_Id = 200) 

另一種方法是使用多表更新

UPDATE Products, Categories 
SET Products.`desc` = 'foo' 
WHERE Products.P_id = Categories.P_ID 
AND Categories.Cat_Id = 200 

順便說一句,desc是一個名字非常糟糕的選擇柱。這是一個reserved word。不必打字description全部保存的所有時間都會很快丟失,因爲您必須調試在忘記反引號時不起作用的查詢。

+0

非常感謝。感謝'Desc'提示。 –

0

試試這個:

UPDATE products 
set `Desc` = 'xxx' 
WHERE P_id IN (SELECT P_Id FROM Categories WHERE Cat_Id = 200); 
+0

你需要反引號'desc' - 這是一個保留字。 –

+0

哎呀,我錯過了..謝謝.. :-) – heretolearn

相關問題