PostgreSQLの複数テーブルを使用したselct文について質問です。
table1
col1 | col2 | col3
A1 | B1 | test1
A2 | B2 | test2
A3 | B3 | test3
table2
id | A1 | A2 | A3 |date
1 | true |false|false | 2022-05-04
2 | false|true |true | 2022-05-05
table3
id | B1 | B2 | B3 | date
1 | 200 |300 |350 | 2022-05-04
2 | 100 |250 |400 | 2022-05-05
テーブルの定義は、
table1
col1 varchar(20)
col2 varchar(20)
col3 varchar(20)
table2
id int
B1 int
B2 int
B3 int
date date
table3
id int
B1 int
B2 int
B3 int
date date
となります。
selectで上記のtable1のcol1と一致するカラム名をtable2で見てtrueの場合のみ、table3からtable1のcol2と一致するカラム名の数値を以下のように表示したいです。
value | col3 | date
200 | test1 | 2022-05-04
250 | test2 | 2022-05-05
400 | test3 | 2022-05-05
ストアドやビューというものは調べてみたのですが、カラム名やテーブル名を変数で指定しようとするとうまくいきませんでした。
selectでこういった表示は可能なのでしょうか?
dateはtable2とtable3で同じ数値が入るのでtable2の方でお願いします。
またtable2,table3は今後カラム数が増える可能性があり、その際はtable1側にもデータが追加されます。
そのため可能であればA1,A2等を固定で指定するのではなく、table1のデータをそのままを使用したいです。
ストアド、ビューは現在削除してしまったため、以前のものが再現でき次第追記したいと思います。