首页 > 解决方案 > 我无法在 PostgreSQL 中创建视图

问题描述

我正在尝试在 Postgres 中创建一个视图。我正在使用 Dbeaver 这样做。我的查询如下:

CREATE VIEW customer_master as
(
select * 
from survey_info 
  full join survey_responses on survey_info.submissionid =survey_responses.submissionid 
);

它抛出一个错误:

CREATE VIEW customer_master as SQL 错误 [42701]:错误:列“submissionid”指定了多次。

有人遇到过这样的问题吗?

标签: postgresqlsql-view

解决方案


如果连接表之间有公共列,则需要使用适当的别名指定所需的所有列。

CREATE VIEW customer_master as
select info.submissionid as submissionid_1,
       resp.submissionid as submissionid_2, --Keep one or use 
                                            --coalesce if one is null 
                                --i.e  coalesce(info.submissionid,resp.submissionid)
       info.col2,
       info.col3,
       resp.col2,
       resp.col3
                 --other columns with aliases
 from survey_info info 
   full join survey_responses resp
  on info.submissionid =resp.submissionid 

推荐阅读