如何合并具有相同列名的两个表

时间:2015-01-23 19:46:47

标签: sql sql-server tsql sql-server-2012

select *
INTO [dbo].[aTable]
from dbo.bt btg left join dbo.btt bta on btg.specialty = bta.specialty 
order by 1, 6

我收到以下错误:

  

每个表中的列名必须是唯一的。专栏名称'专业'在表格中,表格'被指定不止一次。

bt表的列:

Location
Specialty
Provider

btt表的列:

Specialty
Topic

我正在尝试获取位置,专业,提供商和(加入专业的所有主题)。

3 个答案:

答案 0 :(得分:3)

这里的问题是"选择*",它将选择结果集中的所有字段。尝试指定要插入的特定字段。

例如:

SELECT Location, btg.Specialty, Provider, Topic
INTO INTO [dbo].[aTable]
from dbo.bt btg left join dbo.btt bta on btg.specialty = bta.specialty 
order by 1, 6

答案 1 :(得分:1)

您需要提供的别名,以便在连接两个具有相同列名的表时避免冲突。

SELECT btg.Location, btg.Specialty, btg.Provider,btg.Topic
INTO INTO [dbo].[aTable]
from dbo.bt btg join dbo.btt bta on btg.specialty = bta.specialty 
order by 1, 6

答案 2 :(得分:0)

你可以这样做:

select btg.*, topic
INTO [dbo].[aTable]
from dbo.bt btg left join dbo.btt bta on btg.specialty = bta.specialty