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

时间:2011-11-11 17:02:09

标签: sql sql-server sql-server-2008 tsql

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

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

Select
A.Column1,
A.Column2,
B.Column1,
B.Column2,
B.Column3
FROM A
INNER JOIN B
ON A.Column1 = B.Column2

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

5 个答案:

答案 0 :(得分:21)

试试这个:

alter table A add column3 datatype

update A 
set column3 = B.column3 
from A inner join B on A.Column1 = B.Column2

答案 1 :(得分:5)

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

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)

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

你可以这样做:

alter A add column3 datatype;

update A
inner join (select column2 ,column3, count(*) as cnt from B group by column2) b
on A.column1 = b.column2 set 
A.column3 = b.column3;

答案 4 :(得分:-3)

您可以使用INSERT语句创建一个新表:

INSERT INTO
   NEW_A
SELECT
   A.*,
   B.Column3
FROM A
   INNER JOIN B
   ON A.Column1 = B.Column2