我有一个PostgreSQL查询,我通过加入另一个临时表和我的数据库中的表来创建临时表。
DROP TABLE IF EXISTS other_temp_table;
CREATE TEMP TABLE other_temp_table AS
SELECT *
FROM base.main_data
WHERE period_start_time::DATE >= '2017-06-20' AND period_start_time::DATE <= '2017-07-26';
------------------------------------------------------------------------------------------------------------------------
DROP TABLE IF EXISTS first_temp_table;
CREATE TEMP TABLE first_temp_table AS
SELECT *
FROM _temp_table
LEFT JOIN base."UL_parameters"
ON temp_table.base_col::INT = base."UL_parameters".base_col::INT
and temp_table.sec_col::INT= base."UL_parameters".sec_col::INT;
现在,问题是`错误:列&#34; sec_col&#34;指定不止一次。 但是当我删除sec_col join条件并且只执行base_col时,一切正常。我认为我需要创建一个别名,但不知道如何。
答案 0 :(得分:2)
我认为问题是两个连接表中都有一个sec_col列。尝试将select *
替换为select column1, column2, ...
。
一般来说,避免使用select *
是一种很好的做法,因为它可能会在表定义发生变化时导致错误。