2017-09-14 67 views
0

我有一個PostgreSQL查詢,其中我通過加入另一個臨時表和我的數據庫中的表來創建臨時表。在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; 

現在,問題是錯誤:列「sec_col」列多次指定。 但是,當我刪除sec_col加入條件,並只做base_col,一切都很好。我認爲我需要創建一個別名,但不知道如何。

+1

我不知道PostgreSQL語法,但是 DROP TABLE IF EXISTS ** _ temp_table **; CREATE TABLE TEMP AS _temp_table SELECT * FROM ** _ ** temp_table看起來 奇怪,我 –

+0

@RaphaelMüllner 我的錯誤,同時輸入 – jovicbg

+0

你嘗試加入_temp_table但再參考temp_table(不包括第一個下劃線) – verhie

回答

2

我認爲問題是兩個連接表中都有一個sec_col列。嘗試用select column1, column2, ...替換select *

通常避免select *是一種很好的做法,因爲它在表定義更改時可能會導致錯誤。

+0

爲sec_col創建別名。非常感謝您,我在連接時改變表的順序,然後選擇列,而不是選擇*。 – jovicbg