将数据从一个表添加到另一个表

时间:2016-05-24 16:43:14

标签: sql

我是SQL新手我坚持这个。 我有两张桌子 表1-> 4列 表2-> 3列(2列表名与表1中相同)

表1

UserID    Email    Name     Pass
--------------------------------
xyz      abc@123   xyz      xyz
123      123@xyz   abc      123

表2

EmpID    Email    Name     
-----------------------
xyz      abc@123   xyz  

结果-表2

EmpID    Email    Name     
-----------------------
xyz      abc@123   xyz     
         123@xyz   abc

上面的表格较小,我的表格超过60列。我想要一个方法,可以将公共列从表1复制到表2。

3 个答案:

答案 0 :(得分:0)

使用INNER JOIN匹配相关列:

SELECT Table1.*, Table2.*
FROM Table1
INNER JOIN Table2
ON Table1.UserID = Table2.EmpID AND Table1.Email = Table2.Email AND Table1.Name = Table2.Name

答案 1 :(得分:0)

查看您提供的数据
您可以使用update来复制数据

Update table2
inner join table1 on table1.userID = table2.EmpID
set  email = table1.email, 
     name = table1,name ;

答案 2 :(得分:0)

这将生成一个公共列的插入。

declare 
@sql varchar(max),
@Columnlist varchar(max)


SELECT @Columnlist   =  coalesce(@Columnlist+'], ','') + '['+x.column_name 
FROM INFORMATION_SCHEMA.COLUMNS x 
join INFORMATION_SCHEMA.COLUMNS y 
on x.column_name = y.column_name
and y.TABLE_NAME =  'table2'
WHERE x.TABLE_NAME = 'table1'



set @sql ='select '+@Columnlist+'] from table1' 

insert into table2
exec(@sql)