簡體   English   中英

循環瀏覽臨時表中的SQL QUERY記錄結果,並根據SQL QUERY結果更新另一個表

[英]Looping through a SQL QUERY record result from a Temp Table and Updating another table based on SQL QUERY results

我很難提出這個問題。但是,我可以在這里更好地描述它。

我想更新,讓用戶表具有以下形式:

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

像這樣在單獨的表格中與用戶相關的多個ID和喜歡ID

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

並且,與多對多用戶表相關的另一個表具有以下信息,讓我們說UserToLikeingTable


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

並且,這是另一個表,該表直接從UserTable持有UserId。

--------------------------------------------------------------
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  
--------------------------------------------------------------

現在出現我的問題...

我想將所有與上述#TempTable結果共享相同LikeID用戶更新為TESTTABLE,如下所示:我的最終結果應類似於:為先前結果中的所有LikeID的LikeID更新UserId。


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

我對您有任何幫助嗎? 如何循環運行以補全值?

Hint

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

如果我必須先更新和刪除重復的UserIdsum並為它們存儲一個代表的LikeId,該怎么辦?

而不是用LikeId替換所有userIdLikeId將have的值求和並替換一個LikeId?

請根據需要使用聯接,此處的sql如下所示:

 Update TestTable set UserId = #Temptable.LikeId
     from TestTable as test
    inner join  #Temptable on  #Temptable.UserId = test.UserId

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM