在PostgreSQL中通过两列连接两个数据集

时间:2017-09-14 09:35:40

标签: sql postgresql join

我有一个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时,一切正常。我认为我需要创建一个别名,但不知道如何。

1 个答案:

答案 0 :(得分:2)

我认为问题是两个连接表中都有一个sec_col列。尝试将select *替换为select column1, column2, ...

一般来说,避免使用select *是一种很好的做法,因为它可能会在表定义发生变化时导致错误。