代码之家  ›  专栏  ›  技术社区  ›  Haminteu

从特定的select语句sql更新表

  •  0
  • Haminteu  · 技术社区  · 6 年前

    我有下表:

    IDs     ZoneID     ChildID     ParentID
    --------------------------------------------
    null    1          36000       36000
    null    1          36000       36000
    null    2          37000       37000
    

    我想更新 IDs 列中包含以下内容 select 声明:

    SELECT a.ZONEID FROM Table1 a INNER JOIN Table1 b on a.ParentID = b.ChildID
    

    所以, 身份证 列将填入 选择 上面的陈述。

    结果应该是:

    IDs     ZoneID     ChildID     ParentID
    --------------------------------------------
    1       1          36000       36000
    1       1          36000       36000
    2       2          37000       37000
    

    我尝试了以下tsql:

    Update Table1
    set IDs = (SELECT a.ZONEID FROM Table1 a INNER JOIN Table1 b on a.ParentID = b.ChildID)
    

    但是当我执行它的时候出现了错误。争论结果太多了,差不多吧。

    请指教。
    谢谢您。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Gordon Linoff    6 年前

    可以使用相关子查询:

    Update Table1
        set IDs = (SELECT a.ZONEID FROM Table1 a WHERE a.ParentID = Table1.ChildID);
    

    你不需要 JOIN 在子查询中。

        2
  •  2
  •   Amit Kumar Singh    6 年前

    可以将join与更新查询一起使用

    Update Table1
    set IDs = a.ZONEID 
    FROM Table1 a INNER JOIN Table1 b on a.ParentID = b.ChildID