Vous auriez besoin de qualifier de table t1.user_id
pour lever l'ambiguïté. Plus d'autres ajustements :
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);
-
La soustraction de deux dates donne un entier. Le casting était redondant.
-
N'omettez pas le
AS
mot-clé pour les alias de colonne - alors qu'il est généralement acceptable d'omettreAS
pour les alias de table. Le manuel :Vous pouvez omettre
AS
, mais uniquement si le nom de sortie souhaité ne correspond à aucun mot-clé PostgreSQL (voir l'annexe C). Pour vous protéger contre d'éventuels futurs ajouts de mots-clés, il est recommandé de toujours écrireAS
ou mettez le nom de la sortie entre guillemets.) -
Joindre des tables avec un
USING
la clause n'en garde qu'une instance des colonnes jointes (user_id
dans ce cas) dans le jeu de résultats et vous n'avez plus besoin de le qualifier de table.