

高岡智則
年齢: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 の結果例です。
| 顧客名 | 注文ID | 金額 | |
|---|---|---|---|
| 1 | 山田太郎 | 1001 | 5000 |
| 2 | 鈴木花子 | 1002 | 7500 |
この表は、結合の基本的な考え方を実際のデータで示したものです。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 などの拡張。外部テーブルと派生テーブルを結合する方法。
テーブル結合のおすすめ参考サイト
- SQLの基本とも言えるテーブル結合、その種類と使い方について解説
- SQLでの左結合と右結合の基本を簡単に理解しよう - エンベーダー
- 【MySQL入門④】テーブル結合とは?内部結合と外部結合を解説!
- SQLでの左結合と右結合の基本を簡単に理解しよう - エンベーダー



















