teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2020/02/20 00:36

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,1 +1,18 @@
1
- 年月ごとのテーブルがあるのであれば、それは正規化されていないので(postgresでのパーティションを除く)、動的にSQL文を組み立てる(プログラムでSQL文を生成)しかありません。
1
+ 年月ごとのテーブルがあるのであれば、それは正規化されていないので(postgresでのパーティションを除く)、動的にSQL文を組み立てる(プログラムでSQL文を生成)しかありません。
2
+
3
+ 取り敢えず、現状のSQLを簡潔にするとしたら
4
+ ```SQL
5
+ select *
6
+ from table_A
7
+ left join (
8
+ select * from table_B_201911
9
+ union all select * from table_C_201911
10
+ union all select * from table_B_201910
11
+ union all select * from table_C_201910
12
+ union all select * from table_B_201909
13
+ union all select * from table_C_201909
14
+ ) table_B_C
15
+ on table_A.id = table_B_C.id
16
+ where table_A.name = 'Sample'
17
+ ```
18
+ ※上記のunionしているインラインビュー部分が、正規化または可変になる部分です。