簡體   English   中英

如何在MYSQL中引用另一個表來更新一個表?

[英]How can I update one table in reference to another table in MYSQL?

這是我如何設置表格 -

Products
_______

P_Id  Desc  
1      Apple  
2     Orange  
3     Banana


Categories
__________

P_Id  Cat_Id  
1      200  
2      200  
3      205 

現在我需要從表“Products”更新字段'Desc'字段,其中表'Categories'中的'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是列名稱的一個非常糟糕的選擇。 這是一個保留字 當您必須調試在忘記反引號時不起作用的查詢時,通過不完整鍵入description而節省的所有時間將很快丟失。

嘗試這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM