定义Postgresql完全联接中的列顺序而不命名所有列

定义Postgresql完全联接中的列顺序而不命名所有列,postgresql,join,Postgresql,Join,我正在用国家信息连接不同的表,其中一个(cty)是带有国家名称的主表。所有表都有一列c,链接到cty中的主键(也称为c) 为了加入他们,我首先使用 select * from cty full join table1 using (c) full join table2 using (c) 这为我提供了cty中的所有国家/地区,但我只需要其他表格中的国家/地区。为了解决这个问题,我试着 select * from table1 full join table2 using (c) join c

我正在用国家信息连接不同的表,其中一个(
cty
)是带有国家名称的主表。所有表都有一列
c
,链接到
cty
中的主键(也称为
c

为了加入他们,我首先使用

select * from cty
full join table1 using (c)
full join table2 using (c)
这为我提供了
cty
中的所有国家/地区,但我只需要其他表格中的国家/地区。为了解决这个问题,我试着

select * from table1
full join table2 using (c)
join cty using (c)
这解决了行数的问题,但现在主列是表中的最后一列

是否有一种方法可以在不指定所有表(我有许多表)的所有列名的情况下保留表开头(左侧)中的
cty
,并且只保留辅助表中的行

select * from cty
         right join 
         (select * from table1
                   full join table2 using(id)
         ) fj on fj.id = tt1.id
;

检查它:

只需使用SELECT cty.*,表2.*@h0mebrewer缺少表“cty”的子句条目啊现在我理解了@h0mebrewer。“从表1中选择cty.*、表1.*、表2.*,使用(c)完全连接表2,使用(c)完全连接cty”。非常感谢。谢谢,它比@h0mebrewer的建议更有效、更简洁(每个表只包含一次)。我很高兴能够提供帮助。