Debería calificar en tabla t1.user_id para desambiguar. Además de otros 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);
-
Restar dos fechas da como resultado un número entero. El reparto era redundante.
-
No omita el
ASpalabra clave para alias de columna, aunque generalmente está bien omitirASpara alias de tabla. El manual:Puede omitir
AS, pero solo si el nombre de salida deseado no coincide con ninguna palabra clave de PostgreSQL (consulte el Apéndice C). Para protegerse contra posibles futuras adiciones de palabras clave, se recomienda que siempre escribaASo comillas dobles el nombre de salida.) -
Unir tablas con
USINGcláusula solo mantiene uno instancia de la(s) columna(s) de unión (user_iden este caso) en el conjunto de resultados y ya no tiene que calificarlo en la tabla.