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
AS
nicht weg Schlüsselwort für Spaltenaliase - obwohl es im Allgemeinen in Ordnung ist,AS
wegzulassen für Tabellenaliase. Das Handbuch:Sie können
AS
weglassen , 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 entwederAS
zu 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_id
in diesem Fall) in der Ergebnismenge und Sie müssen es nicht mehr durch Tabellen qualifizieren.