使用连接更新表

时间:2016-09-07 07:46:11

标签: sql sql-server database join

在我的场景中,我有两个临时表:

表1

  id | UserName | CalendarDate
 ----+----------+--------------
   1 | Null     | 2016-09-07 
   2 | Null     | 2016-09-07

表2

id | Emp_Name  | Date
---+-----------+-------------
 1 | Max       | 2016-09-07
 2 | Jupiter   | 2016-09-07

这是我用来连接两个表的查询。

update #TABLE1 
set UserName = e.Emp_Name 
from #TABLE2 e 
join #TABLE l on e.Date = l.CalendarDate

运行查询后,它会在所有行中更新#Table1Emp_Name,如下所示

id | UserName | CalendarDate
---+----------+----------------
 1 | Jupiter  | 2016-09-07
 2 | Jupiter  | 2016-09-07

我希望我的输出像这样

表1

id | UserName | CalendarDate
---+----------+----------------
 1 | Max      | 2016-09-07
 2 | Jupiter  | 2016-09-07

如果有人可以帮助我,那将非常有帮助。谢谢

1 个答案:

答案 0 :(得分:0)

您需要更改一下UPDATE语句:

update l --Instead of #TABLE1
set UserName = e.Emp_Name 
from #TABLE2 e 
join #TABLE1 l 
    on e.id= l.id -- use ID instead of dates