TSQL从具有相同名称的联接中选择所有列

TSQL从具有相同名称的联接中选择所有列,tsql,join,Tsql,Join,如果我有疑问 select * into #tmp1 from dbo.t1 inner join dbo.t2 on t1.Sender_Id=t2.Id 我犯了一个错误 每个表中的列名必须是唯一的。表“tmp1”中的列名“Id”被多次指定 我怎么能不诉诸法律就做同样的事情呢 select t1.Id as t1id, t1.col2. ... t1.col30, t2.Id as t2id, ... t2.col40 as t2col40 from ... 符号 我只需要快速、手动地

如果我有疑问

select * into #tmp1 from dbo.t1  inner join dbo.t2  on t1.Sender_Id=t2.Id
我犯了一个错误

每个表中的列名必须是唯一的。表“tmp1”中的列名“Id”被多次指定

我怎么能不诉诸法律就做同样的事情呢

select t1.Id as t1id, t1.col2. ... t1.col30, t2.Id as t2id, ... t2.col40 as t2col40 from ...
符号


我只需要快速、手动地检查几个表,所以我希望有一种快速检查联接的方法。

是的,select语句中的列名称必须唯一,在您的情况下,例如,您有两个02 id,一个来自tbl1,另一个来自tbl2,在esolution上,将它们列为:

选择t1.id,t2.id 从tbl1作为t1内部连接tbl2作为t1.id=t2.id上的t2


希望有此帮助。

或者,如果两个表中的列名称相同,请使用以下命令:

Select t1.*, t2.* From tbl1 as t1 Inner join tbl2 as t2 On t1.id = t2.id

关于

如果必须通过select*将结果持久化到tmp中,或要创建视图,则每个字段名称必须是唯一的,并且必须为具有相同名称的字段使用别名。
简单查询不需要唯一的名称

不幸的是,如果存在重复的列,则在使用SELECT*时需要解决该问题,因为前面已经提到了可能的重复。你不能。您需要指定列名并确保它们是唯一的。但是,不要使用“选择*进入”。您可以预先使用唯一的列名显式地创建表,并改为执行“插入”。这允许您使用SELECT*still。