1

这是我设置表格的方式 -

Products
_______

P_Id  Desc  
1      Apple  
2     Orange  
3     Banana


Categories
__________

P_Id  Cat_Id  
1      200  
2      200  
3      205 

现在我需要更新表“产品”中的字段“Desc”字段,其中表“类别”中的“Cat_Id”字段等于 200。任何帮助将不胜感激。

4

2 回答 2

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列名是一个非常糟糕的选择。它是一个保留字description当您必须调试在忘记反引号时不起作用的查询时,由于不完整输入而节省的所有时间将很快丢失。

于 2012-08-27T20:40:53.220 回答
0

试试这个:

UPDATE products
set `Desc` = 'xxx'
WHERE P_id IN (SELECT P_Id FROM Categories WHERE Cat_Id = 200);
于 2012-08-27T20:42:55.457 回答