2

我已经设置了两个表,这是设置的基本示例:

 Table1           Table2
 ____________     ____________
|id   |date  |   |id   |stuff |
|_____|______|   |_____|______|

所以他们都有一个 id 列。我正在尝试以这种方式更新 table1:

update Table1
set [date] = (select [stuff] 
              from Table2 
              where Table2.id = id)

但是,在该行where Table2.id = id中,它使用 id 字段Table2而不是使用 from字段Table1

当我尝试where Table2.id = Table1.id时,我得到一个错误。如何继续跟踪 Table1 的每行 id 以在 Table2 的子查询中使用?

4

3 回答 3

4

您需要将内部查询中的 id 引用到表 1。这应该可以解决您的问题:

update Table1
set Table1.[date] = (select Table2.[stuff] 
                     from Table2
                     where Table2.id = Table1.id)
于 2013-03-01T17:45:12.807 回答
1

试试这个Join

Update t1 set t1.[date] = t2.[stuff]
from Table1 t1 
      join Table2 t2 on t1.id = t2.id
于 2013-03-01T17:46:35.843 回答
1

这是加入版,

update  a
set     a.[date] = b.[stuff]
FROM    Table1  a
        INNER JOIN Table2 b
           ON a.ID = b.ID
于 2013-03-01T17:46:36.593 回答