私は3つのテーブルを持っています。
- テーブルデータには、「data.txt」ファイルからの個々のパーツのデータが含まれています。
- テーブル制限には、「limits.txt」ファイルからのデータテーブルの制限が含まれています。
- テーブルファイルは、上記の個々の.txtファイルのリストです。
したがって、「ファイル」テーブルは次のようになります。ご覧のとおり、これは存在する各ファイルのリストです。LimitsAファイルには、タイプAのすべてのデータファイルの制限が含まれます。
ID File_Name Type Sub-Type
1 DataA_10 A 10
2 DataA_20 A 20
3 DataA_30 A 30
4 LimitsA A NONE
5 DataB_10 B 10
6 DataB_20 B 20
7 LimitsB B NONE
「データ」テーブルは次のようになります。File_IDは、「ファイル」テーブルの外部キーです。具体的には、これは上記のDataA_10のデータになります。
ID File_ID Dat1 Dat2 Dat3... Dat20
1 1 50 52 53
2 1 12 43 52
3 1 32 42 62
「制限」テーブルは次のようになります。File_IDは、「ファイル」テーブルの外部キーです。具体的には、これは上記のLimitsAのデータになります。
ID File_ID Sub-Type Lim1 Lim2
1 4 10 40 60
2 4 20 20 30
3 4 30 10 20
したがって、私がやりたいのは、「Limit」テーブルの正しい制限を、対応する「Data」テーブルのデータに結合することです。DataA_10の各行には、LimitsAテーブルの「40」と「60」の制限があります。残念ながら、制限テーブルをデータテーブルに直接リンクする方法はありません。これを行う唯一の方法は、ファイルテーブルを振り返って、LimitsAとDataA_10がタイプAであることを確認することです。これら2つをリンクしたら、サブタイプ10の制限を取得するだけで済みます。
結局、こんな感じの結果が欲しいです。
結果:
ID File_ID Dat1 Dat2 Dat3... Dat20 Lim1 Lim2
1 1 50 52 53 40 60
2 1 12 43 52 40 60
3 1 32 42 62 40 60
これが理解できるほど明確であることを願っています。2つ以上のテーブルを結合する問題のように思えますが、現時点ではオンラインで適切な解決策を見つけることができませんでした。あなたが解決策やアドバイスを持っているなら、それは大いにありがたいです。