如何通过从多联接选择语句中选择所有列来创建视图或表?

时间:2018-12-14 17:13:06

标签: sql join view sql-server-2012

我正在尝试通过以下语句创建视图或表(无关紧要):

select ms.*,fev.*,val.*
FROM table1 ms
    LEFT JOIN table2 fev
        ON ms.col1 = fev.col1
    LeFT JOIN table3 val
        ON val.col1 = ms.col1 
        AND val.date >= '2017-12-01'

我正在尝试以这种方式创建表:

select * into newtable

from (
 select ms.*,fev.*,val.*
    FROM table1 ms
        LEFT JOIN table2 fev
            ON ms.col1 = fev.col1
        LeFT JOIN table3 val
            ON val.col1 = ms.col1 
            AND val.date >= '2017-12-01'
) as newtable

为什么我总是出错:

The column 'abc' was specified multiple times for 'newtable'.

何时在select语句中指定了表别名?

1 个答案:

答案 0 :(得分:1)

您将需要命名所有列,而不是使用通配符。

由于新视图/表中的所有列都必须唯一,因此必须对别名使用不同表的通用名称,以使其与众不同。

获取所有列名称的快速方法是将columns文件夹从对象资源管理器拖到脚本中。然后,我想将','替换为'/ n,'。然后,您可以开始为重复的列起别名。