U moet t1.user_id
aan de tabel kwalificeren ondubbelzinnig te maken. Plus andere aanpassingen:
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);
-
Het aftrekken van twee datums levert een geheel getal op. Cast was overbodig.
-
Laat de
AS
niet weg trefwoord voor kolomaliassen - hoewel het over het algemeen goed is omAS
weg te laten voor tabelaliassen. De handleiding:U kunt
AS
weglaten , maar alleen als de gewenste uitvoernaam niet overeenkomt met een PostgreSQL-sleutelwoord (zie bijlage C). Voor bescherming tegen mogelijke toekomstige toevoegingen van trefwoorden, wordt aanbevolen dat u altijdAS
. schrijft of dubbele aanhalingstekens voor de uitvoernaam.) -
Tabellen samenvoegen met een
USING
clausule houdt slechts één instantie van de samengevoegde kolommen (user_id
in dit geval) in de resultatenset en u hoeft deze niet meer te kwalificeren.