我已经设置了两个表,这是设置的基本示例:
Table1 Table2
____________ ____________
|id |date | |id |stuff |
|_____|______| |_____|______|
所以他们都有一个id列。我试图以这种方式更新table1:
update Table1
set [date] = (select [stuff]
from Table2
where Table2.id = id)
但是,在where Table2.id = id
行中,它使用Table2
中的ID字段,而不是使用Table1
中的ID字段。
当我尝试where Table2.id = Table1.id
时,我收到错误消息。如何跟踪Table1的每行ID以在Table2的子查询中使用?
答案 0 :(得分:4)
您需要将内部查询中的id引用到表1。 这应该可以解决您的问题:
update Table1
set Table1.[date] = (select Table2.[stuff]
from Table2
where Table2.id = Table1.id)
答案 1 :(得分:1)
使用Join
:
Update t1 set t1.[date] = t2.[stuff]
from Table1 t1
join Table2 t2 on t1.id = t2.id
答案 2 :(得分:1)
这是加入版本,
update a
set a.[date] = b.[stuff]
FROM Table1 a
INNER JOIN Table2 b
ON a.ID = b.ID