「内部結合(INNER JOIN)」と「外部結合(OUTER JOIN)」の違い
スポンサーリンク
予備知識
| 用語 | 意味 |
|---|---|
| データベース | データがそれっぽい感じに入っている箱。データのまとまり |
| テーブル | データベースにおいて、実際にデータを入れておく箱 |
| 結合 | ガション!と合体させること |
| テーブル結合 | データベースの話で出てくる用語で、複数のテーブルを合体させて1つのテーブルっぽくすること |
データベースは「データを入れておく箱」です。

ただし「データベース」という用語は、実際には もう少し複雑な概念です。
データを入れておく箱そのものは「テーブル」と言います。
とりあえず
データベース関連で出てくる用語で、実際にデータを入れておく箱が「テーブル」
と覚えてください。
さて、このテーブルですが、実は合体できます。
2つのテーブルをくっつけて、1つのテーブルっぽくできるのです。
この2つのテーブルを合体させることを指して「結合」や「テーブル結合」と言います。
それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| 内部結合 | 2つのテーブルをくっつけて1つのテーブルっぽくするときのやり方のひとつで、両方のテーブルの合体可能なデータのみを取り出すやり方 |
| 外部結合 | 2つのテーブルをくっつけて1つのテーブルっぽくするときのやり方のひとつで、基準となるテーブルにデータがあれば、もう一方のテーブルになくても取り出すやり方 |
似ているところ
どちらもテーブル結合です。
2つのテーブルを合体させる行為を指します。
違うところ
両方のテーブルにあるデータのみを取り出すのが内部結合です。
2つのテーブルにあって、合体できるデータのみを取り出します。
どちらかのテーブルにデータがあれば取り出すのが外部結合です。
1つのテーブルにしかなくて、合体しないデータも取り出します。
個人的な使い分け
一般的に内部結合と外部結合では内部結合の方が処理が速いので、可能なかぎり内部結合で処理できるように設計をします。
内部結合できない場合は外部結合を使います。
……まぁ、どんなデータを取り出すか決まった時点で、内部結合で実現できるか外部結合が必要になるか決まっちゃうことが、ほとんどですけどね。
備考
・外部結合は左外部結合(LEFT OUTER JOIN)や右外部結合(RIGHT OUTER JOIN)、完全外部結合(FULL OUTER JOIN)といった「○○外部結合」の総称です。
・説明を簡単にするために「テーブルを合体させる」という表現を使っていますが、実際には「2つのテーブルから共通項のあるデータを取り出して、擬似的に新しいテーブルを作る」と表現した方が正確です。






