2014-02-27 44 views
0

我很难制定问题。但是,我最好在此描述它。循环访问Temp表中的SQL QUERY记录结果并更新基于SQL QUERY结果的另一个表

我想更新让说,它具有以下形式的用户表:相关

-------------------------------------------------------------- 
UserID ROLE_NAME VALUE 
-------------------------------------------------------------- 
001  VALUE_Q xx 
002  VALUE_W xx 
003  VALUE_Q xx 
-------------------------------------------------------------- 

而且喜欢标识用户多对多在seprate表这样

-------------------------------------------------------------- 
LikeId Likes VALUE 
-------------------------------------------------------------- 
001  Code xx 
002  Fun xx 
003  Eat xx 
-------------------------------------------------------------- 

和,另一个表其与用户表对多对多有以下信息让说用户去冒险表


UserToLikingID UserId LikeId 
-------------------------------------------------------------- 
01    001  001 
02    002  001 
03    002  002 
-------------------------------------------------------------- 

而且,这里来持有用户ID的另一个表,直接从用户表

-------------------------------------------------------------- 
TESTTABLEID USER_ID VALUE 
-------------------------------------------------------------- 
001   001  100 
002   002  220 
003   003  400 
004   002  231 
-------------------------------------------------------------- 

,我想的是,首先列出了谁共享相同的喜好重复的用户,我已经做了在#不是Temptable如下

-------------------------------------------------------------- 
LikeID UserId VALUE 
-------------------------------------------------------------- 
001  001 100 
001  002 200 
002  003 400 
002  004 500 
003  005 211 
003  005 210 
-------------------------------------------------------------- 

现在到了我的问题...

我想更新谁从上面的共享相同的LikeID所有用户将结果导入到TESTTABLE中,如下所示:My End Result shoudl就像:在上一个结果中为所有LikeID更新LikeID的UserId。


TESTTABLEID USER_ID VALUE 
-------------------------------------------------------------- 
001   001  100 
002   001  220 
003   002  400 
004   002  500 
-------------------------------------------------------------- 

任何帮助是非常多,我appreacted?如何在循环中运行以更新值?

Hint

Update TestTable set UserId = #Temptable.LikeId 
FROM #Temptable 
where #Temptable.UserId = TestTable.UserId 

如果我必须更新和删除重复UserId第一和sum thier值和存储一个代表LikeId为他们做些什么?

而不是全部替换userIdLikeId您总结了价值并取代一个LikeId?

回答

2

请使用联接按照reuirement这里sql中的样子:

Update TestTable set UserId = #Temptable.LikeId 
    from TestTable as test 
    inner join #Temptable on #Temptable.UserId = test.UserId 
相关问题