結合する必要のあるテーブルが3つあります。最初の2つは簡単で、同じキーに基づいています。単純な外部結合が機能します。3番目は注意が必要です。同様のキーがありますが、1つのキーの左側14で一致する必要があります。これは私が望まない重複を生成します。基本的に、IDと正しく一致するTOP 1FROMTable3が必要です。
T-SQLの使用。
テーブルは大きくて複雑なので、サンプルデータと現在実行しているクエリを含むテーブルの簡単な例を以下に概説します。
表1
ID1 ID2 Field1 Field2 Field3 Field4
0000000000 00000000000000a Info1 Info2 Info3 Info4
2222222222 11111111111111b Info1 Info2 Info3 Info4
1111111111 22222222222222c Info1 Info2 Info3 Info4
表2
ID1 ID2 Field1 Field2
0000000000 00000000000000a Info5 Info6
2222222222 11111111111111b Info5 Info6
1111111111 22222222222222c Info5 Info6
テーブル
ID1 ID2 Field1
0000000000 00000000000000a Info7
0000000000 00000000000000b Info7
0000000000 00000000000000c Info7
2222222222 11111111111111b Info7
2222222222 11111111111111d Info7
1111111111 22222222222222c Info7
クエリ
SELECT
Table1.ID1,
Table1.ID2,
Table1.Field1,
Table1.Field2,
Table1.Field3,
Table1.Field4,
Table2.Field1,
Table2.Field2,
Table3.Field1
FROM Table1
LEFT JOIN Table2
ON Table1.ID1=Table2.ID2 AND Table1.ID2=Table2.ID2
LEFT JOIN Table3
ON Table1.ID1=Table3.ID2 AND LEFT(Table1.ID2,14)=LEFT(Table3.ID2,14)
私が得る応答は
0000000000 00000000000000a Info1 Info2 Info3 Info4 Info5 Info6 Info7
0000000000 00000000000000a Info1 Info2 Info3 Info4 Info5 Info6 Info7
0000000000 00000000000000a Info1 Info2 Info3 Info4 Info5 Info6 Info7
2222222222 11111111111111b Info1 Info2 Info3 Info4 Info5 Info6 Info7
2222222222 11111111111111b Info1 Info2 Info3 Info4 Info5 Info6 Info7
1111111111 22222222222222c Info1 Info2 Info3 Info4 Info5 Info6 Info7
私が欲しいのは
0000000000 00000000000000a Info1 Info2 Info3 Info4 Info5 Info6 Info7
2222222222 11111111111111b Info1 Info2 Info3 Info4 Info5 Info6 Info7
1111111111 22222222222222c Info1 Info2 Info3 Info4 Info5 Info6 Info7