SQL Update,每行有计数

时间:2014-10-05 18:37:27

标签: mysql sql count sql-update

我正在尝试使用另一个表中的出现次数更新表的字段,但到目前为止我没有运气。这就是我所拥有的:

Update S
SET Hours = Hours + COUNT(S.ID)
FROM S, E
ON S.ID = E.ID
WHERE S.ID = E.ID
GROUP BY S.ID;

我被迫使用的程序具有可怕的错误处理,并且只能向我提供错误的描述,即语法错误。我已经成功实现了一个返回我想要的select语句:

Select COUNT(S.ID) 
FROM S, E
WHERE S.ID = E.ID
GROUP BY S.ID;

我在这里错过了一些非常简单的事情吗?

2 个答案:

答案 0 :(得分:2)

update s
   set hours =
       (select count(*) from e where e.id = s.id)

答案 1 :(得分:1)

Update S
JOIN
(
  select id, COUNT(*) as cnt
  from e
  group by id
) TMP ON S.ID = TMP.ID
SET S.Hours = S.Hours + TMP.cnt