Você precisaria qualificar a tabela
t1.user_id para desambiguar. Além de outros ajustes: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);
-
A subtração de duas datas resulta em inteiro. O elenco era redundante.
-
Não omita oASpalavra-chave para aliases de coluna - embora geralmente não haja problema em omitirASpara aliases de tabela. O manual:
Você pode omitirAS, mas somente se o nome de saída desejado não corresponder a nenhuma palavra-chave do PostgreSQL (consulte o Apêndice C). Para proteção contra possíveis futuras adições de palavras-chave, é recomendado que você sempre escrevaASou aspas duplas no nome da saída.)
-
Unindo tabelas com umUSINGcláusula mantém apenas um instância das colunas de junção (user_idneste caso) no conjunto de resultados e você não precisa mais qualificá-lo em tabela.