複数のキー フィールドの使用
2 つの状況では、複数の共通キー フィールドを使用して、テーブルを正確に結合するか関連付ける必要があります。
使用... | 処理するとき... | 例 |
---|---|---|
複数のキー フィールドの組み合わせ | 1 つの共通キー フィールドのみの値では一意性が保証されず、2 つのテーブルを正確に結合または関連付けることができません。 | 業者 ID フィールドとロケーション フィールドの両方を使用して、2 つのテーブルを正確に結合または関連付ける必要があります。 |
個別の複数のキー フィールド | 2 つのテーブルを結合または関連付けるために必要な値が、結合または関連付け対象のテーブルのどちらか一方で 2 つ(以上)のキー フィールドに分かれています。 | Name でテーブルを結合するか関連付けます。主または親テーブルには単一の Name フィールドがあります。ただし、名前は副または子テーブルの 2 つのフィールドにいずれかで発生します。 |
複数のキー フィールドを組み合わせて使用
1 つの共通キー フィールドのみの値では一意性が保証されず、2 つのテーブルを正確に結合または関連付けることができない場合は、複数の共通キー フィールドを組み合わせて使用します。
例
共通キー フィールドとして Vendor_ID を使用して、2 つのテーブルを結合するか、関連付けます。ただし、一部の業者には同じ業者 ID の複数のロケーションがあります。
この例では、業者 A4538 にはバンクーバー、リッチモンド、コキットラムにロケーションがあります。
1 つのキー フィールド
Vendor_ID のみを使用してテーブルを結合または関連付けようとすると、副テーブルまたは子テーブルのレコードのうち、最初に一致した業者の場所以外のレコードは、結合されるテーブル(多対一結合)または関連付けられるテーブルには含まれないので、テーブル間による場所の一致に誤りが生じます。
複数のキー フィールドの組み合わせ
製造元の場所をすべて出力し、かつ場所を正確に一致させるには、両方のテーブルで、製造元 ID(Vendor_ID)と場所(Location)の両フィールドをキー フィールドとして使用する必要があります。複数のキー フィールドを組み合わせれば、各フィールドの値によって 1 つの一意な値が形成され、これを使用して 2 つのテーブル間でレコードを確実に一致させることができます。
テーブルの結合時、複数のキー フィールドを組み合わせて指定する
テーブルを結合するときには、次の方法を使用して、複数のキー フィールドを組み合わせて指定できます。
- [結合]ダイアログ ボックスで複数のキー フィールドを選択します。
- 各テーブルで、2 つ以上のキー フィールドを連結(加算)する演算フィールドを作成し、その演算フィールドを使用してテーブルを結合します。詳細については、キー フィールドの連結を参照してください。
[結合]ダイアログ ボックスで複数のキー フィールドを選択します。
[結合]ダイアログ ボックスで各テーブルの複数のキーを選択すると、次の条件が適用されます。
データ構造 | 1 つのキー フィールドの使用時に適用される、データ構造およびデータ形式の要件は、複数のキー フィールドの使用時に各テーブルで対応させるキー フィールドにも適用します。詳細については、データ構造およびデータ書式の要件を参照してください。 |
---|---|
データ型 | 1 つのテーブル内で、複数キー フィールドのデータが異なっていてもかまいません(氏名の苗字、名前、および誕生日など)。 |
並べ替え順序 | 複数のキー フィールドを選択すると、出力テーブルでは並べ替え順序が入れ子になります。ただし、これは結合の実行で主テーブルが事前に並べ替えられている([主テーブルをあらかじめ並べ替える]オプションを選択)ことを前提とします。キー フィールドを選択する順序が、入れ子の並べ替え順序の優先度を示します。 |
テーブルの関連付け時、複数のキー フィールドを組み合わせて指定する
テーブルを関連付けるときには、次の方法を使用して、複数のキー フィールドを組み合わせて指定できます。
- 各テーブルで、2 つ以上のキー フィールドを連結(加算)する演算フィールドを作成し、その演算フィールドを使用してテーブルを関連付けます。詳細については、キー フィールドの連結を参照してください。
- 各テーブルで、複数のキー フィールドのデータを含めることができる長さのフィールドを新たに定義し、その新しいフィールドを使用してテーブルを関連付けます。詳細については、物理フィールドを定義するを参照してください。
メモ
結合とは異なり、テーブルの関連付けを行う場合、一組みのテーブルに対して選択できるキー フィールドは 1 つのみです。このため、複数のキー フィールドを組み合わせて使用するには、上のいずれかの方法を用いる必要があります。
複数のキー フィールドにデータを含む新しいフィールドの定義
複数のキーフィールドにデータを含む新しいフィールドを定義するときには、次の条件が適用されます。
データ構造 | 1 つのキー フィールドの使用時に適用される、データ構造およびデータ形式の要件は、複数のキー フィールドを含む新しく作成されたフィールドにも適用します。詳細については、データ構造およびデータ書式の要件を参照してください。 |
---|---|
フィールドの隣接 | この方法は、その複数のキー フィールドが各テーブルで隣接している場合にのみ機能します。フィールドが隣接されるようにするには、対象のフィールドを必要な順序で選択し、新しいテーブルに抽出することで実現できます。 |
データ型 |
複数のキー フィールド全体を含めることができる新しいフィールドのデータ型は、ソース データと対応しています。 複数のキー フィールドのデータ型がそれぞれ異なる場合は、テーブルの関連付けに使用する目的のため、それらを文字フィールドとする新しいフィールドを作成できます。 |
複数のキー フィールドを個別に使用
2 つのテーブルを正確に結合または関連付けるために必要な値が、結合または関連付け対象のテーブルのどちらか一方で 2 つ(以上)のキー フィールドに含まれている場合、それらの複数のキー フィールドを個別に使用する必要があります。
複数のキー フィールドのフィールドごとに、結合作業を 1 回ずつ実行するか、関連付けを 1 つずつ設定し、完全なデータ セットがある統合された最終的な結果を生成します。
テーブルの結合または関連付けで複数のキー フィールドのうち 1 つしか使用しなかった場合は、その結果のデータは不完全なものになります。
例 1:副または子テーブルの 2 つのキー フィールド
名前を用いて 2 つのテーブルを結合または関連付けます。主または親テーブルにはの Name フィールドがあります。ただし、副テーブルまたは子テーブルには Name_1 および Name_2 という別々の名前フィールドがあります。副テーブルまたは子テーブルで、一致の対象となる名前は 2 つの名前フィールドのうちどちらかに存在します。
テーブルの結合
名前の間ですべての可能な一致を取り込むには、2 つの連続結合を実行し、副テーブルのキー フィールドのいずれかのみを使用して各結合を行う必要があります。1 番目に行った結合の出力テーブルを、2 番目に行う結合の主テーブルとして使用します。
各結合を実行する場合、一致および不一致のどちらの主レコード(すべての主レコード)も含める結合タイプを選択する必要があります。このため、処理のどの時点でも不一致の主レコードを失いません。
メモ
以下の図は、結合されるテーブルのキー フィールドのみを示します。通常、テーブルにはキー フィールド以外のデータも含まれています。
テーブルの関連付け
名前の間ですべての可能な結合を取り込むには、親キー フィールドと 2 番目の子キー フィールドの間で追加の関係の子テーブルの追加インスタンスを追加する必要があります。
[関係]ダイアログ ボックスの[テーブルの追加]ボタンをクリックし、適切なテーブルを選択して子テーブルのインスタンスを追加します。
例 2:主または親テーブルの 2 つのキー フィールド
税フィルター ID 番号を用いて 2 つのテーブルを結合または関連付けます。主または親テーブルには税還付金上方が含まれ、副または子テーブルは税フィルター ID 番号を社会保障番号にマッピングします。
主テーブルまたは親テーブルには、主申告者(本人)の ID 番号を含む ID フィールドがあり、副申告者(配偶者)が存在する場合は、その ID 番号を含む Secondary_ID フィールドがあります。副テーブルまたは子テーブルには、すべての人の ID 番号を含む ID フィールドがあります。社会保障番号が主申告者と副申告者の両方に結び付けられた、結合データまたは関連付けデータを生成します。
テーブルの結合
社会保障番号を主および副税フィルターの両方に関連付けるには、2 つの連続結合を実行し、主テーブルのキー フィールドのいずれかのみを使用して各結合を行う必要があります。1 番目に行った結合の出力テーブルを、2 番目に行う結合の主テーブルとして使用します。
各結合を実行する場合、一致および不一致のどちらの主レコード(すべての主レコード)も含める結合タイプを選択する必要があります。このため、処理のどの時点でも不一致の主レコードを失いません。
メモ
以下の図は、結合されるテーブルのキー フィールドのみを示します。通常、テーブルにはキー フィールド以外のデータも含まれています。
テーブルの関連付け
社会保障番号を主および副税フィルターの両方に関連付けるには、2 番目の親キー フィールドと子キー フィールドの間の関係の子テーブルの追加インスタンスを追加する必要があります。
[関係]ダイアログ ボックスの[テーブルの追加]ボタンをクリックし、適切なテーブルを選択して子テーブルのインスタンスを追加します。