THUMGY Data 機能説明書

結合

2つのテーブルをキー項目で照合し、1つのテーブルにまとめます。内部結合・左結合・不一致レコードの抽出など、監査手続きでよく使う結合方法に対応しています。

更新日 2026/08/31 ·対応バージョン 2.x

機能

《結合》は、開いているテーブル(主テーブル)と、ほかのテーブル(副テーブル)を、キーとなるフィールドの値が一致するレコードどうしで結び付けて、新しいテーブルを作成する機能です。どのレコードを残すかは、7つの「結合パターン」から選択します。「(7)あいまい結合」では、キーの文字列が完全に一致しなくても、似ているレコードを結び付けます。元のテーブルは変更されません。

売上No商品No数量
1A014
2A012
3A023
4A035
主テーブル(売上)
商品No商品名
A01ノート
A02ボールペン
A04消しゴム
副テーブル(商品マスタ)

→

売上No商品No数量商品No_2商品名
1A014A01ノート
2A012A01ノート
3A023A02ボールペン
4A035
結合したテーブル(キー:商品No、(1)すべての主レコードとキーが一致する副レコード)
  • フィールドは、主テーブルの出力フィールド、副テーブルの出力フィールドの順に、それぞれ選択した順で並びます(「(6)すべての副レコードとキーが一致する主レコード」だけは副テーブルのフィールドが先になります)。
  • 主テーブルと同じ名前の副テーブルのフィールドは、名前の後ろに「_2」が付きます(例:商品No_2)。データ型と書式は元のフィールドと同じです。
  • キーが一致するレコードがない側のフィールドの値は、文字型は空欄、数値型は「0」になります。
  • キーの比較では、大文字・小文字、全角・半角が区別されます(例:「a01」「A01」は「A01」と一致しません)。

メニュー

《加工》-《結合》

  • テーブルを開いている場合に使用できます。開いているテーブルが主テーブルになります。
  • テーブルの画面で条件式を設定している場合は、その条件式が「条件式(主テーブル)」に入力された状態で開きます。
  • プロジェクトにほかのテーブルがない場合は、メッセージが表示され、画面は開きません。
  • 操作ログから結合のコマンドを修正することもできます(「■ 操作ログからコマンドを修正する場合」参照)。

操作ログからコマンドを修正する場合

操作ログで結合(JOIN)またはあいまい結合(FUZZYJOIN)のコマンドを修正すると、コマンドの内容が設定された状態で画面が開きます。

  • 結合パターン、副テーブル、キーと出力フィールド、あいまい結合の設定、オプション、条件式、保存先が復元されます。
  • フィールドは、コマンドに記述された順に選択されます。テーブルにないフィールドは選択されません。
  • 副テーブルがプロジェクトにない場合(削除された場合など)は、「副テーブル」が「テーブルを選択」のまま開きます。副テーブルを選択し直してください。
  • テーブルの画面で条件式を設定している場合は、コマンドの条件式ではなく、その条件式が入力されます。

設定内容

結合 / 曖昧結合 の画面
  • 1主テーブル:結合の元になる主テーブル(開いているテーブル)の、フォルダ名とテーブル名が表示されます。
  • 2《フィールド選択》ボタン:フィールドの一覧を開き、3のフィールドをまとめて選択・解除できます。4、6、8も同様です。
  • 3主キーフィールド(必須):主テーブルのキーにするフィールドの行をクリックして選択・解除します。
    • 左端の番号は選択した順番です。1つ目の主キーと1つ目の副キー、2つ目の主キーと2つ目の副キー・・・が比較され、すべてが一致するとキーが一致したとみなされます。
    • 見出しのチェックボックス(またはCtrl+A)で、すべてのフィールドを行の順に選択します。
    • 「(7)あいまい結合」では、文字型のフィールドだけが表示されます。
  • 4《フィールド選択》ボタン:フィールドの一覧を開き、5のフィールドをまとめて選択・解除できます。
  • 5副キーフィールド(必須):副テーブルのキーにするフィールドを、3と同じ数だけ選択します。
    • 10で副テーブルを選択すると、副テーブルのフィールドが表示されます。副テーブルを変更すると、選択は解除されます。
  • 6《フィールド選択》ボタン:フィールドの一覧を開き、7のフィールドをまとめて選択・解除できます。
  • 7主テーブルの出力フィールド(必須):作成するテーブルに出力する、主テーブルのフィールドを選択します。選択した順に並びます。
  • 8《フィールド選択》ボタン:フィールドの一覧を開き、9のフィールドをまとめて選択・解除できます。
  • 9副テーブルの出力フィールド:作成するテーブルに出力する、副テーブルのフィールドを選択します。選択した順に並びます。
    • 結合パターンが(1)(3)(5)(7)の場合は必須です。(2)(4)(6)の場合は選択しなくても実行できます。
    • (4)の場合は、副テーブルのフィールドは出力されないため、選択できません(選択は解除されます)。
  • 10副テーブル(必須):主テーブルと結合する副テーブルを選択します。
    • プロジェクトのテーブル(主テーブルと同じ名前のテーブルを除く)と、参照プロジェクトのテーブル(「プロジェクト名: テーブル名」)が表示されます。
    • 一覧の上の「テーブル名で検索」に文字を入力すると、その文字を名前に含むテーブルだけが表示されます(大文字・小文字は区別しません)。
  • 11結合パターン(必須):作成するテーブルに残すレコードを選択します(「◇結合の結果」参照)。
    • 初期値は「(1)すべての主レコードとキーが一致する副レコード」です。
    • 「(7)あいまい結合」を選択すると、画面のタイトルが「曖昧結合」になり、22~26が表示されます(「■ あいまい結合を選択した場合」参照)。キーの選択は解除されます。
  • 12処理前にスペースを削除する:オンにすると、文字型のフィールドの値の前後のスペースを削除してから、キーを比較します。初期値はオンです。
    • 例えば「 A01 」と「A01」が一致します。作成するテーブルの文字型の値も、前後のスペースが削除されます。
    • オフにすると、スペースを含めたまま比較し、値もそのまま出力します。
  • 13《式ビルダー》ボタン:「式ビルダー」画面を開き、主テーブルのフィールドや関数を選んで条件式を作成できます。
  • 14条件式(主テーブル)(任意):主テーブルのレコードを絞り込む条件を入力します。条件に合う主テーブルのレコードだけが結合されます。空欄の場合は、すべてのレコードが対象です。
    • 副テーブルのレコードは絞り込まれません。
    • 入力中に、関数やフィールドの候補が表示されます(Ctrl+Spaceで表示、Escで閉じます)。
  • 15《検証》ボタン:条件式が正しいかを確認します(Ctrl+Enter)。誤りがある場合は、メッセージが表示されます。
  • 16ファイル保存先(必須):作成するテーブルの名前を入力します。
    • テーブル名だけの場合は「04_table」フォルダに、「フォルダ名¥テーブル名」の場合はそのフォルダに作成されます。フォルダがない場合は作成されます。
    • 拡張子(.hdf5)は省略できます。「04_table」フォルダ以外の場所には保存できません。
    • テーブル名の長さは、64文字までです。
    • 記号(「-」「.」「#」など)や全角スペースは使用できません。名前の最後に「¥」「/」、途中に「..」は入力できません。
    • 主テーブル・副テーブルと同じ名前は使用できません(大文字・小文字やフォルダが違っても同じ名前とみなされます)。
    • 同じ名前のテーブルがすでにある場合は、上書きしてよいかの確認メッセージが表示されます。「いいえ」を選択すると、実行せずに画面に戻ります。
  • 17《参照》ボタン:保存画面を開き、保存先を選択できます。
  • 18コマンド:現在の設定で実行されるコマンドが表示されます(「◇操作ログ」参照)。副テーブルを選択すると表示されます。
  • 19《コピー》ボタン:コマンドをクリップボードにコピーします。
  • 20《キャンセル》ボタン:実行せずに画面を閉じます(Escキー)。確認メッセージで「はい」を選択すると閉じます。
  • 21《実行》ボタン:実行します(Enterキー)。テーブルが作成されると、画面が閉じ、作成したテーブルが開きます。

結合パターンの一覧

11の一覧には、結合パターンが図とともに表示されます。左の円が主テーブル、右の円が副テーブルで、色の付いた部分が作成するテーブルに残るレコードです。

結合 / 曖昧結合 の画面

あいまい結合を選択した場合

「(7)あいまい結合」を選択すると、次の項目が表示されます。

結合 / 曖昧結合 の画面
  • 22あいまい結合パターン(必須):キーが似ているかどうかの判定方法を、「ダイス係数」(初期値)または「レーベンシュタイン」から選択します。
    • 切り替えても、23、24、26に入力した値はそれぞれ保持されます。
  • 23割合(必須):キーがどれだけ似ていれば一致とみなすかを、0~1の数値(小数点以下4桁まで)で入力します。1に近いほど、よく似たキーだけが一致します。
  • 24N-gram(必須):キーの文字列を区切る文字数を、1~10の整数で入力します。
  • 25最初の副キー一致のみを結合:オンにすると、主テーブルの各レコードに、似ている副テーブルのレコードのうち、副テーブルで最初のレコードだけを結合します。初期値はオフです。

「あいまい結合パターン」で「レーベンシュタイン」を選択すると、23、24の代わりに次の項目が表示されます。

結合 / 曖昧結合 の画面
  • 26距離(必須):異なる文字数がいくつまでなら一致とみなすかを、1~9999の整数で入力します。

結合の結果

結合パターンによって、作成するテーブルに残るレコードは次のようになります。例は「◇機能」と同じ2つのテーブル(キーは商品No、出力フィールドはすべて)です。「(1)すべての主レコードとキーが一致する副レコード」の結果は「◇機能」の例のとおりです。

(2)キーが一致した主レコードと副レコード (最初の1件目)

キーが一致したレコードだけが残ります。商品マスタにない売上(A03)は残りません。

売上No商品No数量
1A014
2A012
3A023
4A035
主テーブル(売上)
商品No商品名
A01ノート
A02ボールペン
A04消しゴム
副テーブル(商品マスタ)

→

売上No商品No数量商品No_2商品名
1A014A01ノート
2A012A01ノート
3A023A02ボールペン
結合したテーブル

(4)主レコードの中で、副レコードとキーが一致しないレコード

副テーブルにキーが一致するレコードがない、主テーブルのレコードだけが残ります。副テーブルのフィールドは出力されません。

売上No商品No数量
1A014
2A012
3A023
4A035
主テーブル(売上)
商品No商品名
A01ノート
A02ボールペン
A04消しゴム
副テーブル(商品マスタ)

→

売上No商品No数量
4A035
結合したテーブル

(5)すべての主レコードと副レコード

両方のテーブルのすべてのレコードが残ります。売上のない商品(A04)は、主テーブルのフィールドが空欄(数値型は「0」)になります。

売上No商品No数量
1A014
2A012
3A023
4A035
主テーブル(売上)
商品No商品名
A01ノート
A02ボールペン
A04消しゴム
副テーブル(商品マスタ)

→

売上No商品No数量商品No_2商品名
1A014A01ノート
2A012A01ノート
3A023A02ボールペン
4A035
00A04消しゴム
結合したテーブル

(6)すべての副レコードとキーが一致する主レコード

副テーブルのすべてのレコードが残り、副テーブルのフィールドが先に並びます。キーが一致する主テーブルのレコードは、すべて結合されます。

売上No商品No数量
1A014
2A012
3A023
4A035
主テーブル(売上)
商品No商品名
A01ノート
A02ボールペン
A04消しゴム
副テーブル(商品マスタ)

→

商品No_2商品名売上No商品No数量
A01ノート1A014
A01ノート2A012
A02ボールペン3A023
A04消しゴム00
結合したテーブル

副テーブルにキーが一致するレコードが複数ある場合

例は、商品マスタにA02が2件ある場合です。「(3)キーが一致した主レコードと副レコード (一致するものすべて)」では、2件とも結合されます。

売上No商品No数量
1A014
2A012
3A023
4A035
主テーブル(売上)
商品No商品名
A01ノート
A02ボールペン黒
A02ボールペン赤
副テーブル(商品マスタ)

→

売上No商品No数量商品No_2商品名
1A014A01ノート
2A012A01ノート
3A023A02ボールペン黒
3A023A02ボールペン赤
結合したテーブル
  • 「(5)すべての主レコードと副レコード」も、キーが一致する副テーブルのレコードがすべて結合されます。
  • 「(1)すべての主レコードとキーが一致する副レコード」「(2)キーが一致した主レコードと副レコード (最初の1件目)」では、副テーブルで最初のレコード(ボールペン黒)だけが結合されます。

(7)あいまい結合

キーの文字列が似ているレコードどうしを結合します。似ているレコードがない主テーブルのレコードは残りません。似ているレコードが複数ある場合は、そのすべてと結合されます。例は、得意先名をキーにした場合です。

  • ダイス係数:キーの文字列をN-gramの文字数ずつ区切り、共通する部分の割合が割合以上の場合に一致とみなします。例えばN-gramが2の場合、「田中商事」(田中・中商・商事)と「田中商事㈱」(田中・中商・商事・事㈱)は、2×3÷(3+4)=0.86です。
  • レーベンシュタイン:一方のキーをもう一方にするために、追加・削除・置き換えが必要な文字数が距離以下の場合に一致とみなします。「田中商事」と「田中商事㈱」は1文字です。
売上No得意先名
1山田商店
2田中商事
3佐藤工業
主テーブル(売上)
コード名称
K01山田商店
K02田中商事㈱
K03田中商事
副テーブル(得意先)

→

売上No得意先名コード名称
1山田商店K01山田商店
2田中商事K02田中商事㈱
2田中商事K03田中商事
結合したテーブル(ダイス係数、割合0.5、N-gram2)
  • 割合を0.9にすると、「田中商事㈱」(0.86)は一致しなくなり、売上No 2には「田中商事」(K03)だけが結合されます。
  • レーベンシュタインで距離を1にした場合も、上の図と同じ結果になります。

「最初の副キー一致のみを結合」をオンにすると、似ている副テーブルのレコードのうち、副テーブルで最初のレコードだけが結合されます。

売上No得意先名
1山田商店
2田中商事
3佐藤工業
主テーブル(売上)
コード名称
K01山田商店
K02田中商事㈱
K03田中商事
副テーブル(得意先)

→

売上No得意先名コード名称
1山田商店K01山田商店
2田中商事K02田中商事㈱
結合したテーブル(「最初の副キー一致のみを結合」オン)

入力内容に誤りがある場合

《実行》ボタンをクリックしたときに、副テーブルが選択されていない、キーが選択されていない、保存先が空欄などの誤りがあると、画面の左下にメッセージが表示され、該当する項目が赤枠で示されます。項目を修正するとメッセージは消え、《実行》ボタンが使用できるようになります。

結合 / 曖昧結合 の画面
  • 「(7)あいまい結合」では、割合・N-gram・距離が範囲外の場合も、同様にメッセージが表示されます。
  • 主キーと副キーの数が異なる場合、日付型のキーの書式が主テーブルと副テーブルで異なる場合、条件式に誤りがある場合は、実行時に誤りの内容を示す画面が表示されます。画面は閉じないので、設定を修正してもう一度実行してください。

操作ログ

OPEN "主テーブル"
OPEN "副テーブル" SECONDARY
JOIN PKEY [主キー1] ・・・ FIELDS [フィールド1] ・・・ SKEY [副キー1] ・・・ WITH [フィールド1] ・・・ 結合パターン IF 条件式 TO "保存先" OPEN KEEPSPACE

あいまい結合の場合は、「JOIN」の行が次のようになります(結合パターンは記述しません)。

FUZZYJOIN ON DICE PERCENT 割合 NGRAM N-gram PKEY ・・・ WITH ・・・ IF 条件式 TO "保存先" FIRSTMATCH OPEN KEEPSPACE
FUZZYJOIN ON LEVDISTANCE DISTANCE 距離 PKEY ・・・(以降は同じ)

各キーワードの意味は、次のとおりです。

キーワード内容設定内容
OPEN “主テーブル”主テーブルを開きます1
OPEN “副テーブル” SECONDARY副テーブルを開きます10
JOIN結合パターン(1)~(6)で結合します11
FUZZYJOIN ON DICE PERCENT 割合 NGRAM N-gramダイス係数であいまい結合します22~24
FUZZYJOIN ON LEVDISTANCE DISTANCE 距離レーベンシュタインであいまい結合します22、26
PKEY [主キー1] ・・・主キーフィールド。選択した順に記述します3
FIELDS [フィールド1] ・・・主テーブルの出力フィールド7
SKEY [副キー1] ・・・副キーフィールド。選択した順に記述します5
WITH [フィールド1] ・・・副テーブルの出力フィールド9
PRIMARY/(なし)/MANY/UNMATCH結合パターン(1)~(4)11
PRIMARY SECONDARY/SECONDARY結合パターン(5)、(6)11
IF 条件式主テーブルのレコードを絞り込む条件14
TO “保存先”作成するテーブルの名前(保存先)16
FIRSTMATCH副テーブルで最初のレコードだけを結合します25
OPEN(TOの後)作成したテーブルを開きます―
KEEPSPACE前後のスペースを削除せずに比較します12
  • すべてのフィールドを一覧の順に選択した場合は、フィールド名の代わりに「ALLFIELDS」と記述されます。
  • 結合パターン(2)にはキーワードがないため、「WITH」のフィールドの後に何も記述されません。(4)の場合は「WITH」の後にフィールドは記述されません。
  • 下線部(オプション)は、条件式を入力した場合、25をオンにした場合、12をオフにした場合に記述されます。

コマンドを直接記述する場合(スクリプトなど)

  • テーブル名は「”」で、フィールド名は「[ ]」で囲んで記述します。
  • 主テーブルは「OPEN」で、副テーブルは「OPEN」と「SECONDARY」で開いてから、結合のコマンドを記述します。
  • 主キー(PKEY)と副キー(SKEY)は同じ数だけ記述します。数が異なるとエラーになります。
  • 結合パターン(1)(3)(5)では、「WITH」のフィールドは省略できません(省略するとエラーになります)。
  • あいまい結合のキーには、文字型のフィールドを指定します。割合は0~1、N-gramは1~10、距離は1~9999の範囲で記述します(範囲外はエラーになります)。
  • 「FIRSTMATCH」は「TO “保存先”」と「OPEN」の間に、「KEEPSPACE」は「OPEN」の後に記述します。

オプションの例

結合パターン・オプションの記述結合の結果(「◇機能」の例のテーブル)
PRIMARYすべての売上に商品名が付きます(A03は空欄)
(なし)商品マスタにある売上(A01、A02)だけが残ります
MANYキーが一致する商品マスタのレコードがすべて結合されます
UNMATCH商品マスタにない売上(A03)だけが残ります
PRIMARY SECONDARYすべての売上と、売上のない商品(A04)が残ります
SECONDARYすべての商品が残り、売上が付きます(A04は空欄)
PRIMARY ・・・ OPEN KEEPSPACE前後のスペースを含めたまま商品Noを比較します

例

OPEN "FG¥売上"
OPEN "マスタ¥得意先" SECONDARY
JOIN PKEY [2_得意先コード] FIELDS ALLFIELDS SKEY [1_得意先コード] WITH [2_得意先名] [3_地域] PRIMARY TO "FG¥売上_得意先" OPEN

OPEN "FG¥売上"
OPEN "マスタ¥得意先" SECONDARY
FUZZYJOIN ON LEVDISTANCE DISTANCE 3 PKEY [3_得意先名] FIELDS ALLFIELDS SKEY [2_得意先名] WITH [3_地域] TO "FG¥売上_得意先" OPEN