I have tables with large number of columns some of which are duplicate. I need to use SELECT t1.*, t2.* FROM t1 join t2 using (t) since I don't know all column names of t1 and t2 tables at design time. In this case PostgreSQL returns table with duplicate columns. How to force Postgres to return only first table column when second table contains column with same name? Code to reproduce: create table t1 ( id integer /*, a lot of other columns */ ); create table t2 ( id integer /*, a lot of other columns */ ); create table t3 as select t1.*,t2.* from t1 join t2 using (id); Observed: Error: Column name is duplicated Expected: t3 table should contain single id column Andrus.