我目前在SQL中遇到问题。
我有两张桌子。第一个包含一个int值和一个帐户的int ID,第二个包含一些userdata和值,我想更新。
表:
TABLE (INT AccountID, INT ValueToAdd)
表:
TABLE (INT AccountID, INT ValueToBeUpdated, ...)
我希望SQL查看1.表中需要AccountID
的表格,然后应该更新ValueToBeUpdated
1.table.AccountID = 2.table.AccountID
值
我希望你明白我的意思。我还没有找到一种方法来实现像SQL这样的面向集合的语言,因为我不能通过其中一个表来循环循环:
foreach (row in 2.table)
{
if (row.AccountID IN 1.table.AccountID)
{
UPDATE row SET ValueToBeUpdated = (SELECT ValueToAdd FROM 1.table WHERE AccountID = row.AccountID)
}
}
我希望你能帮帮我:)。
答案 0 :(得分:4)
忘记循环,你可以为你的情况做这样的事情:
UPDATE
row
SET
r.ValueToBeUpdated.col1 = t.ValueToAdd
FROM
row r
INNER JOIN
table t
ON
t.AccountID = r.AccountID
<强>参考强>
Why are relational set-based queries better than cursors?
Understanding “Set based” and “Procedural” approaches in SQL
答案 1 :(得分:0)
不使用foreach循环就可以轻松执行。
UPDATE table2 SET ValueToBeUpdated = a.ValueToAdd
FROM table2 b INNER JOIN table1 a
ON a.AccountID = b.AccountID