テーブル結合とは?初心者向けに分かりやすく解説する基本ガイド共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
テーブル結合とは?初心者向けに分かりやすく解説する基本ガイド共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


テーブル結合とは?初心者向けガイド

データベースには、様々な情報がテーブルと呼ばれる表の形で保存されています。テーブル結合とは、複数のテーブルに分かれた情報を、関連するデータ同士をつなげて、一つの表として扱えるようにする技術です。例えば「顧客情報」と「注文情報」が別々の表にある場合、顧客と注文を結びつけて、どの顧客がどんな注文をしたのかを同時に見ることができます。

日常の例えで考えると、社員データと部署データをつなぐ感じです。社員テーブルには社員IDや名前、部署IDがあり、部署テーブルには部署IDと部署名があります。部署IDを使って結合すれば、誰がどの部署に所属しているかを一目で分かります。

結合の基本はキーです。主キーと外部キーと呼ばれる列を使います。主キーは表の中で一意のID、外部キーは他の表の主キーを指すIDです。例えば顧客テーブルの顧客IDを注文テーブルの外部キーとして使い、顧客と注文を結ぶことができます。

代表的な結合の種類

INNER JOINは、両方の表に一致する行だけを取り出します。例えば顧客テーブルと注文テーブルをINNER JOINすれば、実際に注文をした顧客の情報だけが表示されます。

LEFT JOINは、左側の表の全行と、右側の表の一致する行を結合します。左の表にはデータがあるけれど、右の表に一致がない場合でも左の行は残ります。例えば顧客テーブルをLEFT JOINすれば、注文がまだない顧客もリストに出せます。

RIGHT JOINは、左と右を反対に見ます。右側の表の全行と、それに対応する左側の行を結合します。右の表にしかないデータがある場合も表示されます。

FULL OUTER JOINは、両方の表の全行を取り出します。どちらかの表にデータがない場合は、欠損値を null で埋めて表示します。

具体的なデータの例

次の2つのテーブルを想定します。

顧客テーブル(顧客ID, 顧客名)

注文テーブル(注文ID, 顧客ID, 金額)

INNER JOIN の例(SQL):

SELECT 顧客.顧客ID, 顧客.顧客名, 注文.注文ID, 注文.金額 FROM 顧客 INNER JOIN 注文 ON 顧客.顧客ID = 注文.顧客ID;

結合後のデータの例は次のようになります。以下は INNER JOIN の結果例です。

<th>顧客ID
顧客名注文ID金額
1田太郎10015000
2鈴木花子10027500

この表は、結合の基本的な考え方を実際のデータで示したものです。INNER JOIN であれば、顧客が実際に注文をした場合のみ表示されています。もし顧客が注文をしていなくても顧客情報を見たい場合には、LEFT JOIN を使います。LEFT JOIN の場合、注文がない顧客も結果に現れ、注文の列には <span>null が入ることがあります。これにより、データの欠損をそのまま把握できる利点があります。

結合を使うときのコツは、結合キーが正しく設計されているかを確認することです。主キーと外部キーの関係がずれていると、意図しない結果が出ることがあります。また、結合の順序やデータ量により、検索のパフォーマンスが変わることがあります。大規模なデータを扱うときは、必要な列だけを取り出す SELECT 句を使い、インデックスを適切に設定することが重要です。

実務での使い方のイメージとしては、顧客データと購買データを一つの表にまとめて分析する、在庫情報と受注情報を結びつけて納期を管理する、などの場面が挙げられます。最初は小さなデータセットで練習し、少しずつ複雑な結合へと挑戦していくのが良いでしょう。


テーブル結合の同意語

内結合
テーブル同士を、指定した結合条件に一致する行だけ結びつける結合の基本形。一般的には INNER JOIN と同義です。
内部結合
内結合と同義。2つのテーブルに共通の列があり、それらの値が一致する行を結合して1行にします。
外部結合
左結合と同義。左側テーブルの全行を出力します。
左結合
左外部結合の略称。左のテーブルを基準にして結合します。
LEFT JOIN
左外部結合の英語表記(略称)。左テーブルの全行を基準に結合します。
右外部結合
右結合と同義。右側テーブルの全行を出力します。
右結合
右外部結合の略称。右側テーブルを基準に結合します。
RIGHT JOIN
右外部結合の英語表記。
自然結合
共通の列名と型が一致する場合に、結合条件を自動で決定して結合します。特定の結合条件を記述せずに使います。
NATURAL JOIN
自然結合の英語表記。
等価結合
結合条件が等価(=)で表される結合。代表例は INNER JOIN で A.id = B.id のような条件を用います。
等値結合
等価結合と同義。結合条件として値の等しさを使う結合です。
クロス結合
結合条件を指定せず、2つのテーブルの全行の組み合わせを作るデカルト積の結合です。
CROSS JOIN
クロス結合の英語表記。
自己結合
自分自身のテーブルを別名で2つの欄として結合する、自己参照的な結合のことです。
SELF JOIN
自己結合の英語表記。
ジョイ
JOIN の和製表記。文脈によって INNER JOIN、LEFT JOIN などの種類を総称して使われます。
結合演算
テーブルを結合する演算の総称。SQL の JOIN 操作を指します。
結合操作
結合を行う操作の総称。

テーブル結合の対義語・反対語

テーブル結合なし
複数のテーブルを結合せず、1つのテーブルだけを参照してデータを取得することを指す対義語的概念。
非結合クエリ
JOIN句を使わず、テーブルを結合しないクエリのこと。
単一テーブルクエリ
クエリが1つのテーブルのみを参照し、他のテーブルと結合しないデータ取得のこと。
一つのテーブルのみ参照
データ取得の際、参照対象を1つのテーブルに限定する表現。
単独テーブル取得
選択対象を1つのテーブルに制限してデータを取得すること。
テーブル分割
データを複数のテーブルに分割する設計・処理のこと。結合して元の情報を再構成することを前提としない opposite 的概念。
複数テーブル未使用
データ取得時に複数のテーブルを使用せず、単一テーブルのみを使用する方針を表す表現。
データ統合を回避して取得
複数のテーブルを結合してデータを統合する操作を避け、別のテーブルごとにデータを取得する考え方。

テーブル結合の共起語

SQL
データベースへ問い合わせ・操作を行う標準的な言語。テーブル結合はSQLの機能の一部で、SELECT文で複数のテーブルを結びつける際に使います。
JOIN
テーブル同士を結合する操作の総称。後にINNER/LEFT/RIGHTなどの具体的な結合を組み合わせて使います。
INNER JOIN
内部結合。結合条件に一致する行だけを取り出す、最も一般的な結合の形。
内部結合
INNER JOINの日本語表現。テーブル間の共通データのみを結びつけます。
LEFT JOIN
左外部結合。左側のテーブルの全行を保持し、結合条件に一致する右側の行を結合します。
左外部結合
LEFT JOINの日本語表現。
RIGHT JOIN
右外部結合。右側の全行を保持し、左側の一致する行を結合します。
右外部結合
RIGHT JOINの日本語表現。
FULL JOIN
全外部結合。両方のテーブルの全行を返し、結合条件に一致しない場合はNULLで埋めます。
全外部結合
FULL JOINの日本語表現。
CROSS JOIN
クロス結合。2つのテーブルの全組み合わせを生成する、デカルト積と同義の結合です。
クロス結合
CROSS JOINの日本語表現。
デカルト積
CROSS JOINの別名。全ての組み合わせを作る結果を指します。
NATURAL JOIN
自然結合。同名のカラムを自動的に結合条件として使います。
自然結合
NATURAL JOINの日本語表現。
USING句
USING句。結合する共通カラム名を指定して結合条件を短く書けます。
USING
USING句の名称。
ON句
ON句。結合条件を明示的に記述する最も一般的な方法。
ON
ON句の略称。
結合条件
結合を成立させる条件式。主にON句やUSING句で使います。
結合キー
結合に使われるキー。テーブル間の対応を示します。
主キー
テーブルの各行を一意に識別する列・列の組み合わせ。
外部キー
他のテーブルの主キーと対応する参照整合性を保つ列。
キー
データを結びつける識別子の総称。
同名カラム
2つのテーブルに同名のカラムがあると、衝突や自動結合条件で影響します。
カラム名
テーブル上の列の名前。結合条件でよく使われます。
エイリアス
テーブル名やカラム名に別名を付けて、SQLを読みやすくする機能(例: テーブル名 AS t)。
テーブルエイリアス
テーブルに付ける別名のこと。
別名
エイリアスの別称。
データベース
データを整理・保存するシステム
リレーショナルデータベース
表形式でデータを管理するデータベースの一形態。
RDBMS
リレーショナルデータベース管理システムの略。結合機能を提供します。
インデックス
結合条件の評価を高速化するデータ構造。
パフォーマンス
結合の実行時間や資源消費に影響する要因。最適な結合選択が重要。
クエリプラン
データベースがどの順序・方法で結合を実行するかの実行計画。
ネストループ結合
結合アルゴリズムの一つ。外側の行を内側と1行ずつ照合します。
ハッシュ結合
結合アルゴリズムの一つ。ハッシュテーブルを用いて高速に結合します。
マージ結合
結合アルゴリズムの一つ。ソート済みデータを並べ替えつつ結合します。
結合アルゴリズム
テーブル結合を実現する複数の実行手法(ネストループ・ハッシュ・マージ等)。
自己結合
同じテーブルを複数回別名で結合するケース

テーブル結合の関連用語

テーブル結合
複数のテーブルのデータを1つの表にまとめる操作。共通の列の値を基準にして行を結び付けます。
INNER JOIN
2つのテーブルの結合条件を満たす行だけを取り出し、対応する列を組み合わせて新しい行を作る結合。
左外部結合 (LEFT JOIN)
左側のテーブルの全行を結果に含め、右側に対応する行があれば結合、なければ右側の列はNULLになる結合。
右外部結合 (RIGHT JOIN)
右側のテーブルの全行を結果に含め、左側に対応する行があれば結合、なければ左側の列はNULLになる結合。
完全外部結合 (FULL OUTER JOIN)
左右両方の全行を返し、対応する行がない場合はNULLで埋める結合。
クロス結合 (CROSS JOIN)
2つのテーブルのデカルト積をとり、全ての組み合わせを作る結合。
自然結合 (NATURAL JOIN)
共通の列名を自動的に結合条件として使用し、同名の列は1つだけ返す結合。
ON句 (ON)
結合条件を明示的に指定する句。どの列をどう結ぶかを決めます。
USING句 (USING)
共通の列名を指定して、同名の列を1つだけ返す結合条件のき方。
等価結合 (Equijoin)
結合条件が等価 (=) 条件のみで成り立つ結合。
非等価結合 (Non-equi join)
等価以外の比較条件(<, >, BETWEEN など)で結ぶ結合。
θ結合 (Theta join)
任意の比較条件で結ぶ結合。等価条件以外も含みます。
セルフ結合 (Self join)
同じテーブルを別名で2つ用意して結合させる結合。
アンチ結合 (Anti-join)
結合条件に一致しない行を取り出す結合。NOT EXISTS などで実現することが多い。
半結合 (Semi-join)
結合条件を満たす行の存在だけを確認する。結果には右テーブルの列を返さない。
結合条件 (Join predicate/Condition)
テーブルを結ぶときに使う条件の総称。式で表現します。
結合述語 (Join predicate)
結合条件を表す述語のこと。論理式で表現します。
別名/エイリアス (Alias)
長いテーブル名を短く書くための別名。読みやすさや可読性の向上に使います。
外部キー (Foreign key)
別のテーブルの主キーを参照する列。参照整合性を保つ役割。
主キー (Primary key)
テーブル内で一意に行を識別する列。重複しない値を持ちます。
参照整合性 (Referential integrity)
外部キーと主キーの整合性をデータベースが保証する仕組み。
インデックス (Index)
結合を高速化するためのデータ構造。検索を速くします。
結合順序 (Join order)
複数テーブルを結ぶときの結合の順番。実行計画に影響します。
結合アルゴリズム
実際の結合の実装方法。主なものにネストループ、ハッシュ結合、マージ結合があります。
ネストループ結合 (Nested Loop Join)
外側の行を1行ずつ取り出して、内側テーブルを照合する基本的な結合手法。
ハッシュ結合 (Hash Join)
大きなテーブルをハッシュテーブルに格納して照合する高速な結合手法。
マージ結合 (Merge Join)
事前にソートされたデータをマージして結合する手法。
デカルト積 (Cartesian Product)
結合条件なしで全ての組み合わせを作る結果。通常は避けるべきです。
派生テーブル / サブクエリ結合 (Derived table / Subquery join)
サブクエリの結果を一時的なテーブルのように使って結合する方法。
LATERAL結合 (LATERAL JOIN)
派生テーブルが他のテーブルの列を参照できる結合。主にPostgreSQL等で用いられます。
CROSS APPLY / OUTER APPLY
SQL Server などの拡張。外部テーブルと派生テーブルを結合する方法。

テーブル結合のおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
16144viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2683viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1152viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1151viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
1030viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
989viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
972viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
965viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
859viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
857viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
796viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
795viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
749viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
706viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
696viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
642viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
599viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
592viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
590viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
530viws

新着記事

インターネット・コンピュータの関連記事