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

查找详细记录数并更新主表的count列

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

    我的项目使用的是SQL Server 2014。我有两个表(主关系和详细关系),如下所示:

    Master:
    id
    detail_count (the number of associated Detail records)
    
    Detail:
    id
    master_id
    

    纵队 detail_count 是主记录具有的详细记录数。我可以找到每个主记录的计数,如下所示:

    select m.id, count(*) from Master m
    join Detail d on d.master_id = m.id
    group by m.id
    

    我还可以为主表编写update语句:

    update Master set detail_count = ?
    

    如何将以上两个语句组合起来更新所有主记录的详细计数

    1 回复  |  直到 5 年前
        1
  •  1
  •   FLICKER    5 年前

    您只需使用以下查询更新计数:

    update Master 
    set detail_count = (select count(*) from detail where detail.master_id = Master.id)