Sql 使用联接中的数据添加新列
使用联接中的值向现有表中添加列的最佳方法是什么…例如: 如果我将表A连接到表BSql 使用联接中的数据添加新列,sql,sql-server,sql-server-2008,tsql,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?首先使用命令添加新列 后记使用update命令将B的值放入在A中创建的列中。请注意,这
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?首先使用命令添加新列
后记使用update命令将B的值放入在A中创建的列中。请注意,这可能不是最有效的方法
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)
可以使用INSERT语句创建新表:
INSERT INTO
NEW_A
SELECT
A.*,
B.Column3
FROM A
INNER JOIN B
ON A.Column1 = B.Column2
试试这个:
alter table A add column3 datatype
update A
set column3 = B.column3
from A inner join B on A.Column1 = B.Column2
您可以这样做:
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;
他想添加到现有的表中。在Postgres上使用来自内部联接B的
要比使用来自B的简单慢得多,其中A.Column1=B.Column2
子句。(我不确定前者是否有效;我从未完成过。)在SQLite中,我使用此方法获取b表的最后一行作为所有行的值。