繁体   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