2017-02-19 6 views
0

国の情報を持つ異なるテーブルに参加しています。そのうちの1つ(cty)が国の名前を持つメイン・テーブルです。すべてのテーブルには、(cとも呼ばれます)の主キーにリンクする列cがあります。それらすべてに参加するにはすべてのカラムに名前を付けずにPostgresqlのフル・ジョインでカラムの順序を定義する

は、私が最初に

select * from cty 
full join table1 using (c) 
full join table2 using (c) 

を使用これは私にctyのすべての国を与えるが、私は他のテーブルで唯一の国が存在します。これを解決するために、私は試しました

これは、行の数についての問題を解決しますが、今ではメインの列はテーブルの最後です。

ctyからテーブルの先頭(左側)に列を保持する方法はありますか(多くのテーブルがあります)、すべてのテーブルの列名をすべて指定せずに、セカンダリテーブル?

+0

ただ、SELECT CTYを使用*、table2の* – h0mebrewer

+0

h0mebrewer @ – Rodrigo

+0

ああ、今私はh0mebrewer @あなたを理解テーブル "CTY" のFROM句エントリを欠落しています。。。 "(c)を使用して(c)完全結合ctyを使用して、テーブル1。*、テーブル2。*をテーブル1完全結合テーブル2から選択する。ありがとうございました! – Rodrigo

答えて

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

それを確認してください:http://rextester.com/HCA83570

+0

ありがとう、それは動作し、@ h0mebrewerの提案よりも簡潔です(各表は1回のみ含まれています)。 – Rodrigo

+0

私は助けることができてうれしいです。 – McNets

関連する問題