Du skal tabelkvalificere t1.user_id
at tvetydige. Plus andre justeringer:
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);
-
Hvis du trækker to datoer fra, får du heltal. Medvirken var overflødig.
-
Undlad at udelade
AS
nøgleord for kolonnealiasser - mens det generelt er OK at udeladeAS
for tabelaliasser. Manualen:Du kan udelade
AS
, men kun hvis det ønskede outputnavn ikke matcher noget PostgreSQL-nøgleord (se appendiks C). For at beskytte mod mulige fremtidige tilføjelser af søgeord, anbefales det, at du altid enten skriverAS
eller dobbeltciter outputnavnet.) -
Sammenføjning af tabeller med en
USING
klausul beholder kun én forekomst af sammenføjningskolonnerne (user_id
i dette tilfælde) i resultatsættet, og du behøver ikke at tabelkvalificere det længere.