這裏是我有我的表設置 -如何更新一個表引用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。任何幫助將非常感激。
這裏是我有我的表設置 -如何更新一個表引用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。任何幫助將非常感激。
下面是做這件事:
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
全部保存的所有時間都會很快丟失,因爲您必須調試在忘記反引號時不起作用的查詢。
非常感謝。感謝'Desc'提示。 –
試試這個:
UPDATE products
set `Desc` = 'xxx'
WHERE P_id IN (SELECT P_Id FROM Categories WHERE Cat_Id = 200);
你需要反引號'desc' - 這是一個保留字。 –
哎呀,我錯過了..謝謝.. :-) – heretolearn
您是否嘗試過的[MySQL文檔(http://dev.mysql.com/doc/refman/5.0/en/update.html)? – lanzz
「現在我需要更新字段'Desc'字段」將其更新爲什麼? –