PostgreSQLで不完全リスト情報に基づく完全リスト作成をしたいのですが、良い方法はないでしょうか。
次のテーブルがあります。

CREATE TABLE abscissa (
  a_id TEXT
  o_id_list TEXT[]
);

CREATE TABLE ordinate (
  o_id TEXT
  a_id_list TEXT[]
);

a_id_list, o_id_list は それぞれ a_id, o_id の不完全リストとなっています。
これをもとに、完全リストを作りたいのです。
具体例でいうと、次のようなデータがあるとします。

a_1  | {o_1, o_2, o_4}
a_2  | {o_1, o_3, o_5}
a_3  | {o_3, o_5}

o_1  | {a_1, a_2}
o_2  | {a_1}
o_3  | {a_2, a_3}
o_4  | {a_1}
o_5  | {a_2, a_3}

これを

{a_1, a_2, a_3} | {o_1, o_2, o_3, o_4, o_5}

という形にまとめたいのです。
よろしくお願いいたします。

追記:

重なりがない場合というのは、

a_4 | {o_6,o_7}
a_5 | {o_8,o_9}

というような場合です。

使い方に慣れておらず、要領が悪くてすみません。