如何查找记录数并更新另一个表?

时间:2015-12-28 13:48:50

标签: sql sqlite

我有一个像这样的表(度):

dID        dmID    dlID    d11  

540        1         1      44                  
541        1         2      55                  
542        1         3      66                              
545        2         1      56                  
546        2         2      76                  
547        2         3      87                                  
550        3         1      55                  
551        3         2      78                  
552        3         3      87                                  
555        4         1      22                  
556        4         2      22                  
557        4         3      78      

我想找到每个dmID有多少d11 <50 所以我用:

SELECT   COUNT(*)  FROM degrees  
 WHERE degrees.[d11]<50
  GROUP BY degrees.dmID

结果如下:

COUNT(*)

   1
   2

我的问题:如何将这些值更新到名为midTable.Result的midTable.[mid] = degrees.[dmID]所在的另一个表列?

这是midTable结构:

mID    Result

1        null
2        null
3        null

1 个答案:

答案 0 :(得分:1)

一种方法是使用相关子查询:

update midTable
    set Results = (select count(*)
                   from degrees d
                   where d.dmid = midTable.mid and d.d11 < 50
                  );

注意:这会将不匹配的值设置为0,这可能是查询的意图。