如何避免SQL中的重复列

如何避免SQL中的重复列,sql,sql-server,join,Sql,Sql Server,Join,我对ms sql和joins非常陌生。请有人指导我完成这个过程 下面的查询可以工作,但是它复制了两个表中的许多列 挑选* 来自['BP Ref_uu客户名称$'] 内部连接['Road 2010-当前$'] 在['BP Ref uu; Customer Name$'].[客户订单]=['Road 2010-当前美元].[客户订单] 但是,当我尝试在['BP Ref u; Customer Name$']表中指定我希望查询选择的列时,我得到了一个错误。如果每个表都有相同的列名,则需要指定要执行的列

我对ms sql和joins非常陌生。请有人指导我完成这个过程

下面的查询可以工作,但是它复制了两个表中的许多列

挑选* 来自['BP Ref_uu客户名称$'] 内部连接['Road 2010-当前$'] 在['BP Ref uu; Customer Name$'].[客户订单]=['Road 2010-当前美元].[客户订单]
但是,当我尝试在['BP Ref u; Customer Name$']表中指定我希望查询选择的列时,我得到了一个错误。

如果每个表都有相同的列名,则需要指定要执行的列名

使用您的查询,您可以使用 选择['BP Ref u-Customer Name$']。列名称来自

或者最好还是给每个表一个别名,例如

Select CUST.col_1, CURRENT.col_2
From ['BP Ref _ Customer Name$'] AS CUST
inner join ['Road 2010 - Current$'] AS CURRENT on CUST.[Client Order]=CURRENT.[Client Order]

首先,使用表别名。其次,明确列出所需的列。第三,重命名重复的

select c.col1 as c_col1, cn.col1 as cn_col1, . . .
from ['BP Ref _ Customer Name$'] cn join
     ['Road 2010 - Current$'] c
     on cn.[Client Order] = c.[Client Order]
您*可以*从一个表中选择所有列,然后从另一个表中重命名这些列:

select c.*, cn.col1 as cn_col1, . . .
from ['BP Ref _ Customer Name$'] cn join
     ['Road 2010 - Current$'] c
     on cn.[Client Order] = c.[Client Order]