我是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。
答案 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)