使用来自连接的数据添加新列

dor*_*npc 13 sql t-sql sql-server sql-server-2008

使用连接中的值将列添加到现有表的最佳方法是什么...例如:

如果我将表A加入表B ......

Select
A.Column1,
A.Column2,
B.Column1,
B.Column2,
B.Column3
FROM A
INNER JOIN B
ON A.Column1 = B.Column2
Run Code Online (Sandbox Code Playgroud)

基本上我只想将表B中存在的列复制到表A,如何根据连接将新的A.Column3添加到表A以匹配B.Column3?

Ste*_*son 22

试试这个:

alter table A add column3 datatype

update A 
set column3 = B.column3 
from A inner join B on A.Column1 = B.Column2
Run Code Online (Sandbox Code Playgroud)

  • 使用`from A inner join B`比明显的`明显更慢'来自B,其中Postgres上的A.Column1 = B.Column2`子句.(我不知道如果是前者在所有工作,它从未完成了我.) (6认同)

bpg*_*rgo 6

请注意,这可能不是最有效的方法

alter table A add column3 [yourdatatype];

update A set column3 = (select column3 from B where A.Column1 = B.Column2) 
  where exists (select column3 from B where A.Column1 = B.Column2)
Run Code Online (Sandbox Code Playgroud)


aF.*_*aF. 0

首先使用alter table命令添加新列。

之后使用update命令将 B 的值放入 A 中创建的列中。