![](/img/trans.png)
[英]SQL: Looping Through Results From One Query and Performing Another Query With Each Result
[英]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
如果我必須先更新和刪除重復的UserId
並sum
並為它們存儲一個代表的LikeId,該怎么辦?
而不是用LikeId
替換所有userId
, LikeId
將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.