Sie müssten t1.user_id tabellenqualifizieren zu disambiguieren. Plus weitere Anpassungen:
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);
-
Die Subtraktion zweier Daten ergibt eine ganze Zahl. Besetzung war überflüssig.
-
Lassen Sie das
ASnicht weg Schlüsselwort für Spaltenaliase - obwohl es im Allgemeinen in Ordnung ist,ASwegzulassen für Tabellenaliase. Das Handbuch:Sie können
ASweglassen , aber nur, wenn der gewünschte Ausgabename mit keinem PostgreSQL-Schlüsselwort übereinstimmt (siehe Anhang C). Zum Schutz vor möglichen zukünftigen Keyword-Ergänzungen wird empfohlen, immer entwederASzu schreiben oder den Ausgabenamen in doppelte Anführungszeichen setzen.) -
Verbinden von Tabellen mit einem
USING-Klausel behält nur eine Instanz der beitretenden Spalte(n) (user_idin diesem Fall) in der Ergebnismenge und Sie müssen es nicht mehr durch Tabellen qualifizieren.