以下是我设置表格的方法 -
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.任何帮助都将非常感激。
答案 0 :(得分: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
所节省的时间将很快丢失。
答案 1 :(得分:0)
试试这个:
UPDATE products
set `Desc` = 'xxx'
WHERE P_id IN (SELECT P_Id FROM Categories WHERE Cat_Id = 200);