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

将字段及其值从主表移动到其明细表

  •  0
  • curious1  · 技术社区  · 5 年前

    我正在为我的项目使用sql server,但我的问题似乎不是特定于供应商的。

    我有两个表和列,如下所示:

    Master:
    id
    ok
    
    Details:
    id
    master_id
    

    现在我需要将“ok”字段和值从主表移动到details表。它们看起来像这样:

    Master:
    id
    ok (kept for copy of values, but will delete it later)
    
    Details:
    id
    master_id
    ok
    

    我在details表中创建了“ok”字段。如何将主表中的值复制到明细表中相应的记录?这是正确的说法吗?

    update Details set ok = (select ok from Master where master_id = id)
    
    1 回复  |  直到 5 年前
        1
  •  1
  •   Gordon Linoff    5 年前

    当查询中引用了多个表时,应限定 全部的 列引用也许这能解决你遇到的任何问题:

    update Details
        set ok = (select m.ok
                  from Master m
                  where details.master_id = m.id
                 );