t1.user_idをテーブル修飾する必要があります 明確にする。プラスその他の調整:
CREATE TABLE foo AS
SELECT user_id, (t1.the_date - (t2.the_date - t1.the_date)) AS start_date
FROM table1 t1
JOIN table2 t2 USING (user_id);
-
2つの日付を引くと、整数になります。キャストは冗長でした。
-
ASを省略しないでください 列エイリアスのキーワード-通常はASを省略しても問題ありません。 テーブルエイリアスの場合。マニュアル:ASは省略できます 、ただし、目的の出力名がPostgreSQLキーワードと一致しない場合のみ(付録Cを参照)。将来のキーワード追加の可能性から保護するために、常にASを記述することをお勧めします。 または、出力名を二重引用符で囲みます。) -
USINGを使用してテーブルを結合する 句は1つのみを保持します 結合列のインスタンス(user_idこの場合)結果セットで、テーブル修飾する必要はありません。