SQL联接更新表

SQL联接更新表,sql,proc-sql,Sql,Proc Sql,我有两个表,表A有用户Id和5个不同的产品列(空,由计数填充)。表B有时间戳用户id和产品id(在时间t购买)。此代码id提供错误 update table_A as table_A set Count_Product_1 = (select count(product_ID) from Table_B inner join Table_A on Table_A.User_ID=Tab

我有两个表,表A有用户Id和5个不同的产品列(空,由计数填充)。表B有时间戳用户id和产品id(在时间t购买)。此代码id提供错误

update table_A as table_A 
  set Count_Product_1 = (select count(product_ID)
                         from Table_B inner join Table_A 
                           on Table_A.User_ID=Table_B.User_ID 
                         where Product_ID = 'Unique_identifier_product_1');
错误:无法重新打开表A以获得成员级别的更新访问权限 控件,因为您正在资源环境SQL中使用表_A


我猜您需要的是相关子查询,而不是一般子查询。也许这正是你想要的:

update table_A as a 
    set Count_Product_1 = (select count(b.product_ID)
                           from Table_B b
                           where a.User_ID = b.User_ID and
                                 b.Product_ID = 'Unique_identifier_product_1'
                          );

这似乎是一个更合理的查询。

我猜您需要的是相关子查询,而不是一般子查询。也许这正是你想要的:

update table_A as a 
    set Count_Product_1 = (select count(b.product_ID)
                           from Table_B b
                           where a.User_ID = b.User_ID and
                                 b.Product_ID = 'Unique_identifier_product_1'
                          );

这似乎是一个更合理的查询。

我猜您需要的是相关子查询,而不是一般子查询。也许这正是你想要的:

update table_A as a 
    set Count_Product_1 = (select count(b.product_ID)
                           from Table_B b
                           where a.User_ID = b.User_ID and
                                 b.Product_ID = 'Unique_identifier_product_1'
                          );

这似乎是一个更合理的查询。

我猜您需要的是相关子查询,而不是一般子查询。也许这正是你想要的:

update table_A as a 
    set Count_Product_1 = (select count(b.product_ID)
                           from Table_B b
                           where a.User_ID = b.User_ID and
                                 b.Product_ID = 'Unique_identifier_product_1'
                          );

这似乎是一个更合理的查询。

感谢它的工作,但是我的表有400000多条记录,所以它需要时间(SAS Env),等待结果。
表B(用户id,产品id)
上的索引将有助于加快查询速度。感谢它的工作,但是我的表有400000多条记录,所以它需要时间(SAS Env),等待结果。
表B(用户id,产品id)
上的索引将有助于加快查询速度。感谢它的工作,但是我的表有400000多条记录,因此它需要时间(SAS Env),等待结果。
表B(用户id,产品id)
上的索引将有助于加快查询速度。感谢它的工作,然而,我的表有400000多条记录,因此它需要时间(SAS Env),等待结果。在
表B(用户id、产品id)
上的索引将有助于加快查询速度。