2017-09-14 13 views
0

PostgreSQLのクエリがあります。ここでは、別の一時テーブルと私のデータベースのテーブルを結合して一時テーブルを作成しています。複数回指定された列 "sec_col":PostgreSQLで2つのデータセットを結合する

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; 

さて、問題はERROR `です。 しかし、sec_col結合条件を削除してbase_colだけを実行すると、すべてが正常です。エイリアスを作成する必要があるとは思いますが、どうしたらよいかわかりません。

+1

PostgreSQLの構文はわかりませんが、 DROP TABLE IF EXISTS ** _ temp_table **; は、TEMPテーブル_temp_tableをCREATE AS SELECT * FROM ** _ TEMP_TABLE ** はRaphaelMüllner 私のミスあなたは –

+0

には奇妙に見えますそれはそれほど問題ではありません。元の構文をNDAのもとにコピーできないので、入力中に間違えてしまいました。私はbase.UL_parametersからsec_colのエイリアスを作成する方法がわかりません – jovicbg

+0

を入力中に@私 – verhie

答えて

2

問題は、両方の結合テーブルにsec_col列があることだと思います。 select *select column1, column2, ...に置き換えてください。

select *は一般的に避けることをお勧めします。テーブル定義が変更されるとエラーが発生する可能性があるからです。

+0

ありがとう、私は結合している間にテーブルの順序を変更して、列を選択し、*を選択しません。 – jovicbg

関連する問題