主要问题是内部查询不能与
where外部
update语句上的子句相关,因为在内部子查询执行之前,where过滤器首先应用于要更新的表。处理这种情况的典型方法是多表更新。
Update Competition as C inner join ( select CompetitionId, count(*) as NumberOfTeams from PicksPoints as p where UserCompetitionID is not NULL group by CompetitionID ) as A on C.CompetitionID = A.CompetitionIDset C.NumberOfTeams = A.NumberOfTeams
演示:http ://www.sqlfiddle.com/#!2/
a74f3/1



