複数のPostgreSQLテーブルに複数のデータソース(現時点では理論的には増加可能)があり、それぞれ異なるソースを比較するビューを作成したいエントリ。残念ながら、すべてのエントリはPostgres:複数の(部分的に)重複するデータソースを持つクエリ
は、現在私が使用しているクエリは、この
select [relevant_fields] from ((tableA full outer join tableB on
tableA.id=tableB.id) full outer join tableC on tableA.id=tableC.id)
full outer join tableD on tableD.id=tableA.id
このクエリとの問題があるというエントリがテーブルにある場合はB、C、およびDが、同じようにフォーマットされているすべてのテーブルに表示されませんtableAではなく、データソースごとに1つずつ、3(ほとんどNULL)の行になります。私は、セカンダリテーブルにアップセーブすることでこれを行う方法があることを認識していますが、これらのテーブルの一部がかなり大きく、より大きなものになるので、select/viewで直接これを行う方法があるのだろうかと思っていました私は各レコードの複数のコピーが格納されているので、道路の下のメモリの問題に遭遇することはありません。
私の質問は、選択/表示内のエントリごとに1(できるだけ多くの場合)行を達成するために結合を構成する方法はありますか?
編集、サンプルデータ:
select [relevant_fields]
from
tableA full join
tableB using(id) full join
tableC using(id) full join
tableD using(id);
そして、あなたが望むようには動作するはずです:
Table A
id | value
1 | a
2 | b
3 | c
Table B
id | value
1 | A
3 | Z
Table C
id | value
1 | Q
4 | D
Table D
id | value
1 | a
3 | C
Result
id | val_A | val_B | val_C | val_D
1 | a | A | Q | a
2 | b | null | null | null
3 | c | Z | null | C
4 | null | null | D | null
あなたの質問に** [EDIT] **してくださいいくつかのサンプルデータとそのデータに基づいて予想される出力を追加してください。 [**フォーマットされたテキスト**](http://stackoverflow.com/help/formatting)、** **スクリーンショットはありません**(http://meta.stackoverflow.com/questions/285551/why-may -i-not-upload-images-of-code-on-so-asking-a-question/285557#285557)。 ** [編集] **あなたの質問 - コメントを投稿するコードや追加情報はありません**。 –