如何避免sql中的重复列

5anewei6  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(401)

我对mssql和joins非常陌生。请有人指导我完成这个过程。
下面的查询可以工作,但是它复制了两个表中的许多列。

Select *
From ['BP Ref _ Customer Name$']
inner join ['Road 2010 - Current$']
on ['BP Ref _ Customer Name$'].[Client Order]=['Road 2010 - Current$'].[Client Order]

但是,当我尝试指定要查询在['bp ref\uucustomer name$']表中选择的列时,出现了一个错误。

enyaitl3

enyaitl31#

如果每个表都有相同的列名,则需要指定要引入的列名。
使用您的查询,您可以使用 SELECT ['BP Ref _ Customer Name$'].col_name FROM... 或者最好还是给每个表一个别名

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]
fcipmucu

fcipmucu2#

首先,使用表别名。其次,显式列出所需的列。第三,重新命名那些重复的。

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]

相关问题