更新另一个表等于某个值的位置

时间:2012-11-07 19:08:17

标签: mysql sql sql-update

如何在MySQL中执行以下操作:

UPDATE PartTbl SET aFlag = 0 
WHERE PartId = (SELECT PartId FROM CategoryTbl WHERE cat = 100)

3 个答案:

答案 0 :(得分:1)

UPDATE PartTbl SET aFlag = 0 
WHERE PartId IN (SELECT PartId FROM CategoryTbl WHERE cat = 100)

答案 1 :(得分:1)

只需在WHERE子句中使用"IN"代替"="运算符,或使用以下代码:

UPDATE A
    SET aFlag = 0
    From    PartTbl     As  A
    Inner   Join
        CategoryTbl As  B
    On  A.PartId    =   B.PartId
    WHERE B.cat = 100

答案 2 :(得分:1)

UPDATE PartTbl pt SET aFlag = 0 
WHERE exists (
   SELECT PartId FROM CategoryTbl ct 
    WHERE cat = 100 and pt.partId = ct.partId)