我有两张桌子。第一个有id(AI)字段和old_id(Int)字段。
第二个表具有来自第一个表的引用字段p_id old_id作为关系点。
我想将p_id更新为firstTable.id值。是否可以用firstTable.id返回的值更新secondTable.p_id?
这是我的测试sql:

UPDATE secondTable sT
SET sT.p_id = (
    SELECT fT.id
    FROM firstTable fT
    WHERE fT.old_id = secondTable.p_id
)

最佳答案

您可以使用JOIN进行如下更新:

UPDATE secondTable sT
INNER JOIN firstTable fT ON fT.old_id=secondTable.p_id
SET sT.p_id = fT.id;

关于mysql - 是否可以使用包含嵌套查询表本身的另一个嵌套查询来更新结果表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15112520/

10-09 04:22