Ще трябва да квалифицирате таблицата t1.user_id
да се уточнява. Плюс други корекции:
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);
-
Изваждането на две дати дава цяло число. Прехвърлянето беше излишно.
-
Не пропускайте
AS
ключова дума за псевдоними на колони - докато обикновено е добре да пропуснетеAS
за псевдоними на таблици. Ръководството:Можете да пропуснете
AS
, но само ако желаното изходно име не съвпада с нито една ключова дума на PostgreSQL (вижте Приложение C). За защита срещу възможни бъдещи добавяния на ключови думи, се препоръчва винаги или да пишетеAS
или цитирайте изходното име.) -
Обединяване на таблици с
USING
клаузата запазва само един екземпляр на присъединяващите се колони (user_id
). в този случай) в набора от резултати и вече не е нужно да го квалифицирате в таблица.