「JOINって何?」
応用情報技術者試験のSQL分野で超頻出ですが、
- 表をどうつなぐ?
- INNER JOIN?
- LEFT JOIN?
- 主キーと外部キーの関係は?
で混乱する人がかなり多いテーマです。
この記事では、
- JOINとは?
- INNER JOIN
- LEFT JOIN
- 試験での頻出ポイント
を5分で理解できるように解説します!
まず結論
JOINとは?
「複数テーブルを結合する機能」
です!
なぜ必要?
データベースでは:
正規化
によって表を分ける。
例
学生表
| 学生ID | 名前 |
|---|---|
| 1 | 田中 |
| 2 | 鈴木 |
成績表
| 学生ID | 点数 |
|---|---|
| 1 | 80 |
| 2 | 90 |
問題
成績表だけだと:
「誰の点数?」
分からない!
そこでJOIN
表同士をつなぐ!
パズルで理解しよう
かなり分かりやすい👇
学生ID
を使って:
学生表 ↔ 成績表
を合体!
基本構文
SELECT *
FROM 学生表
JOIN 成績表
ON 学生表.学生ID = 成績表.学生ID;
ONとは?
「どの列で結合するか」
指定する。
結果
| 学生ID | 名前 | 点数 |
|---|---|---|
| 1 | 田中 | 80 |
| 2 | 鈴木 | 90 |
INNER JOIN
超頻出!
意味
両方に存在するデータだけ取得
イメージ
共通部分だけ
例
学生表:
| ID | 名前 |
|---|---|
| 1 | 田中 |
| 2 | 鈴木 |
| 3 | 佐藤 |
成績表:
| ID | 点数 |
|---|---|
| 1 | 80 |
| 2 | 90 |
INNER JOIN結果
| 名前 | 点数 |
|---|---|
| 田中 | 80 |
| 鈴木 | 90 |
佐藤は?
成績がないので:
出ない!
LEFT JOIN
超重要!
意味
左表を全部残す
構文
SELECT *
FROM 学生表
LEFT JOIN 成績表
ON 学生表.ID = 成績表.ID;
結果
| 名前 | 点数 |
|---|---|
| 田中 | 80 |
| 鈴木 | 90 |
| 佐藤 | NULL |
ポイント
成績なくても:
左表は残る!
RIGHT JOIN
右表を全部残す
LEFTの逆。
CROSS JOIN
全組み合わせ
JOINと主キー/外部キー
超頻出!
よくある関係
| テーブル | キー |
|---|---|
| 学生表 | 主キー |
| 成績表 | 外部キー |
JOIN条件
通常:
主キー = 外部キー
で結合。
NULLとは?
データなし
LEFT JOINで頻出。
応用情報で超頻出
かなり狙われる👇
- INNER JOIN
- LEFT JOIN
- 主キー
- 外部キー
- NULL
よくあるひっかけ
「LEFT JOINは共通部分だけ取得」
→ 違う!
それは:
INNER JOIN
1分で復習!
JOIN
表結合
INNER JOIN
共通部分だけ
LEFT JOIN
左表全部残す
JOIN条件
主キー = 外部キー
練習問題
問題
LEFT JOINの特徴として最も適切なものはどれか。
ア
両方の表に存在する行のみ取得する
イ
左側の表の行を全て取得する
ウ
右側の表の行を削除する
エ
表を並び替える
解答
正解:イ
解説
LEFT JOINでは、左側テーブルの全行を取得し、対応データがない場合はNULLを設定します。
まとめ
JOINとは
「複数表を結合する機能」
超重要
- INNER JOIN
- LEFT JOIN
- 主キー
- 外部キー
- NULL
まずは、
「JOIN=表をつなぐ」
「INNER=共通部分」
このイメージを持つとかなり理解しやすくなります!
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント