在 pgadmin 中创建连接两个表的表时出错

问题描述 投票:0回答:1

我有两个表,一个是客户数据,另一个是地理数据,它们具有公共字段地理键。我使用以下查询连接了两个表:

SELECT c.*, g.*
FROM customer AS c
LEFT JOIN geography AS g
ON c.geographykey = g.geographykey;

我得到了输出。

但是,尝试使用连接数据创建表会出错。分享下面的查询和错误消息:

CREATE TABLE customer_geo AS
    (SELECT c.*, g.*
    FROM customer AS c
    LEFT JOIN geography AS g
    ON c.geographykey = g.geographykey);

错误:多次指定“geographykey”列

SQL状态:42701 请帮助指出我做错了什么?我是初学者。

sql postgresql error-handling pgadmin create-table
1个回答
0
投票

Postgres 允许在

SELECT
查询的结果中出现重复的列名。 (尽管有些客户也有这样的问题。)

但是无法创建具有重复列名的表。

拼写出

SELECT
列表中的列以省略重复项。这对于源表中的更改也更加稳健。

或者只是删除用于与

geographykey
子句连接的重复列(在您的情况下为
USING
)。您的
SELECT
列表也必须更改:

CREATE TABLE customer_geo AS
SELECT *
FROM   customer  c
LEFT   JOIN geography g USING (geographykey);
© www.soinside.com 2019 - 2024. All rights reserved.