【いんなーじょいん】

INNER JOIN とは?

💡 お互いにマッチする行だけ集合!片思いはお断り
📌 このページのポイント
INNER JOIN(内部結合) 注文テーブル 注文1 → 商品A 注文2 → 商品B 注文3 → 商品X 商品テーブル 商品A: りんご 商品B: みかん 商品C: バナナ ✗ マッチなし INNER JOIN 結果(一致する行のみ) 注文1 | 商品A | りんご 注文2 | 商品B | みかん
INNER JOINのイメージ
ひよこ ひよこ

INNER JOINって何をするものなの?

ペンギン先生 ペンギン先生

2つのテーブルを「共通の列」でくっつける操作だよ。たとえば「注文テーブル」と「商品テーブル」を商品IDで結合すると、各注文に商品名や価格の情報を付けられるんだ

ひよこ ひよこ

INNERってどういう意味なの?

ペンギン先生 ペンギン先生

ベン図でいう「共通部分(積集合)」のことだよ。両方のテーブルに一致するデータがある行だけを返すんだ。片方にしかないデータは結果に含まれないよ

ひよこ ひよこ

じゃあ注文はあるけど商品マスタにない場合は?

ペンギン先生 ペンギン先生

その注文は結果に表示されないよ。一致しない行も含めたい場合はOUTER JOINを使うんだ。INNER JOINは「両方にあるもの」だけを確実に取りたいときに使うんだよ

ひよこ ひよこ

JOINって書くだけでもINNER JOINになるの?

ペンギン先生 ペンギン先生

そう!SQLではJOINと書くだけでINNER JOINと同じ意味になるんだ。でも明示的にINNER JOINと書いた方がコードを読む人にとって分かりやすいから、チームのルールに合わせるといいよ

ひよこ ひよこ

パフォーマンスが心配なんだけど…

ペンギン先生 ペンギン先生

結合する列にインデックスが張ってあれば高速に処理できるよ。逆にインデックスがないと全行の総当たりになって遅くなる。JOINを使うテーブルの結合キーには必ずインデックスを作っておくのが鉄則だね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「INNER JOIN」って出てきたら「両方のテーブルで一致するデータだけを結合する操作」と思えればだいたいOK!
📖 おまけ:英語の意味
「Inner Join」 = 内部結合
💬 inner(内側)は両方のテーブルの共通部分、つまり集合の「交わり」を取るイメージだよ
← 用語集にもどる