「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

OUTER JOIN(外部結合)

pointこの用語のポイント

pointデータベース関連で出てくるよ

point2つのテーブルをくっつけて1つのテーブルっぽくするよ

point基準になるテーブルにあれば、もう片方のテーブルになくても抽出するよ

スポンサーリンク

簡単に書くよ

OUTER JOIN(外部結合)(読:ガイブケツゴウ)とは

「内部結合(INNER JOIN)」の対義語
であり

「左外部結合(LEFT OUTER JOIN)」と「右外部結合(RIGHT OUTER JOIN)」と「完全外部結合(FULL OUTER JOIN)」の総称
です。
もう少し具体的に書くと

2つのテーブル(データベースにおける実際にデータが入っている箱)をくっつけて1つのテーブルっぽくするときの やり方のひとつ
であり

基準となるテーブルにデータがあれば、もう一方のテーブルになくても取り出すやり方
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「データベース」と「テーブル」あとはテーブルの合体について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

データベースは「データを入れておく箱」です。

外部結合

ただし「データベース」という用語は、実際には もう少し複雑な概念です。
データを入れておく箱そのものは「テーブル」と言います。

外部結合2

とりあえず

データベースの話において、実際にデータを入れておく箱がテーブル

と覚えてください。

さて、このテーブルですが、実は合体できます。
2つのテーブルをくっつけて、1つのテーブルっぽくできるのです。

例えば、そうですね。

以下の2つのテーブルが あったとしましょう。

■1つ目のテーブル(テーブル1)

名前性別
ピヨ太
ピヨ子
ピヨ太ママ


■2つ目のテーブル(テーブル2)
名前年齢
ピヨ太成人済み
ピヨ子永遠の17歳
ピヨ太パパおっさん


1つ目のテーブル(テーブル1)には「名前」と「性別」があります。
2つ目のテーブル(テーブル2)には「名前」と「年齢」があります。

「名前」に注目すると、何となく合体できそうな気がしませんか?

実際問題、合体できます。

それでは「名前」に注目して2つのテーブルを合体させてみましょう。

このときの合体のさせ方には、いくつかのやり方があります。
一般的なのは

1.2つのテーブルの合体可能なデータのみ取り出す
外部結合3

2.テーブル1の全データを取り出して、それにテーブル2のデータをくっつける
外部結合4

3.テーブル2の全データを取り出して、それにテーブル1のデータをくっつける
外部結合5

4.両方のテーブルの全データを取り出して、くっつけられる範囲でくっつける
外部結合6

5.両方のテーブルの全データを取り出して、すべての組み合わせでくっつける
外部結合7

の5つです。

よく登場するのは1と2ですけどね。
3は2を逆にしただけなので、あまり使いません。
3を使いたいときはテーブルの順番を入れ替えて2を使います。
4はデータベースの種類によっては、使えなかったりします。
5は特殊なので、ひとまず忘れてください。

この5つのやり方のうち、1を「内部結合(INNER JOIN)」と言います。
2は「左外部結合(LEFT OUTER JOIN)」です。
3は「右外部結合(RIGHT OUTER JOIN)」です。
4は「完全外部結合(FULL OUTER JOIN)」です。
5は「交差結合(CROSS JOIN)」と言います。

まとめて書くと

1.2つのテーブルの合体可能なデータのみ取り出す(内部結合)
2.テーブル1の全データを取り出して、それにテーブル2のデータをくっつける(左外部結合)
3.テーブル2の全データを取り出して、それにテーブル1のデータをくっつける(右外部結合)
4.両方のテーブルの全データを取り出して、くっつけられる範囲でくっつける(完全外部結合)
5.両方のテーブルの全データを取り出して、すべての組み合わせでくっつける(交差結合)


です。

外部結合8

それぞれの詳細は長くなるので書きません。
興味がある方は、用語「内部結合(INNER JOIN)」「左外部結合(LEFT OUTER JOIN)」「右外部結合(RIGHT OUTER JOIN)」「完全外部結合(FULL OUTER JOIN)」「交差結合(CROSS JOIN)」の説明を ご覧ください。

以上を踏まえて、2~4の総称が「外部結合」です。
1の「内部結合」と対比させたいときに使う表現です。

外部結合9

内部結合は「合体可能なデータのみ取り出すやり方」でした。
外部結合は、大雑把に言えば「合体できなくても取り出すよ!」なやり方です。
基準となるテーブル

・左外部結合であれば1つ目のテーブル
・右外部結合であれば2つ目のテーブル
・完全外部結合であればどちらかのテーブル


にデータがあれば、たとえ合体できなくても取り出します。

そんなテーブル合体のやり方が外部結合です。

とはいえ、できれば「外部結合」という用語を そのまま覚えるのは止めてください。

あくまで個人的な意見ですが、まず「左外部結合(LEFT OUTER JOIN)」「右外部結合(RIGHT OUTER JOIN)」「完全外部結合(FULL OUTER JOIN)」の3つを勉強するべきです。
その後で

「左外部結合(LEFT OUTER JOIN)」「右外部結合(RIGHT OUTER JOIN)」「完全外部結合(FULL OUTER JOIN)」の総称が「外部結合」である

と理解してください。

その方が実践的な知識を得られますし、より深く「外部結合とは何ぞや?」を理解できるはずです。


image piyo2

一言でまとめるよ

まぁ「外部結合」って単語が出てきたら「合体できなかったデータも取り出すテーブル(データベースにおける実際にデータが入っている箱)合体のやり方なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像053
書籍画像012


書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
実務で役立つ バックアップの教科書 基本の考え方からツール活用・差分管理・世代管理・データ保全・リストア・リカバリー・可用性の確保まで
マンガでわかるITパスポート