【发布时间】:2014-02-03 16:39:41
【问题描述】:
我目前遇到了 SQL 问题。
我有两张桌子。第一个包含一个 int 值和一个帐户的 int ID,第二个包含一些用户数据和值,我想更新。
-
表:
TABLE (INT AccountID, INT ValueToAdd) -
表:
TABLE (INT AccountID, INT ValueToBeUpdated, ...)
我希望 SQL 从 2. 表中查看它需要的 AccountID 的 1. 表,然后应该更新 ValueToBeUpdated 值,其中 1.table.AccountID = 2.table.AccountID
我希望你明白我的意思。我还没有找到一种方法来使用像 SQL 这样的面向集合的语言来执行此操作,因为我无法通过如下表中的一个表执行 foreach 循环:
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)
}
}
希望你能帮帮我:)
【问题讨论】:
-
您正在考虑循环结构。将 SQL 更像是基于集合的操作。对于这个,您实际上可以在
UPDATE命令中加入其他表。检查这个重复的答案:stackoverflow.com/questions/2334712/… -
WHILE循环和使用游标的迭代解决方案在sql中是可能的,但如果基于集合的解决方案可用,则应始终避免。
标签: sql sql-server foreach