使用来自连接的值将列添加到现有表的最佳方法是什么...例如:
如果我将表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?
答案 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