1

GROUP BY我有两张表,我想从数据中更新一行

这是我的代码:

第二个代码:

UPDATE [TABLE].[dbo].[Movies]
SET [NumFrames] = 
   (SELECT COUNT(ImageURL) as "Count"
    FROM [TABLE].[dbo].[Frames]
    GROUP BY Movie_Id)
GO

第一个代码:

(SELECT COUNT(ImageURL) as "Count"
FROM [TABLE].[dbo].[Frames]
GROUP BY Movie_Id

第一个代码给我一行数字

Count
 12
  6
 10
 10
 10

我想把它插入Movies.NumFrames

第二个代码给我一个错误

消息 512,级别 16,状态 1,第 1 行
子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。

请帮忙

我确定这很简单

4

1 回答 1

5

您需要使用 -WHERE子句(GROUP BY不再需要)。
否则,您的子查询会为每个返回一行Movie_Id,因此您有不止一行可用作更新的源。

UPDATE [TABLE].[dbo].[Movies]
   SET [NumFrames] = 
    ( SELECT COUNT(ImageURL) as "Count"
      FROM [TABLE].[dbo].[Frames]
      WHERE [TABLE].[dbo].[Frames].Movie_Id = [TABLE].[dbo].[Movies].Movie_Id
    )
于 2012-08-01T11:32:01.720 回答