我有两个表,一个是客户数据,另一个是地理数据,它们具有公共字段地理键。我使用以下查询连接了两个表:
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 请帮助指出我做错了什么?我是初学者。
Postgres 允许在
SELECT
查询的结果中出现重复的列名。 (尽管有些客户也有这样的问题。)
但是无法创建具有重复列名的表。
拼写出
SELECT
列表中的列以省略重复项。这对于源表中的更改也更加稳健。
或者只是删除用于与
geographykey
子句连接的重复列(在您的情况下为 USING
)。您的 SELECT
列表也必须更改:
CREATE TABLE customer_geo AS
SELECT *
FROM customer c
LEFT JOIN geography g USING (geographykey);