カテゴリ: MySQL 更新日: 2026/01/20

MySQLのJOINとは?INNER JOIN・LEFT JOIN・RIGHT JOINを初心者向けに完全解説

MySQLのJOINとは?初心者向けに基本解説
MySQLのJOINとは?初心者向けに基本解説

先生と生徒の会話形式で理解しよう

生徒

「MySQLでJOINって出てきたんですけど、何をしているのか全然わかりません…」

先生

「JOINは、別々の表をつなぎ合わせて、一つの結果として見るための仕組みです。紙の名簿を並べて見比べるようなイメージですね。」

生徒

「表をつなぐって、どういうことですか?」

先生

「例えば、会員の名前が書いてある表と、注文内容が書いてある表を、同じ人ごとにまとめて見ることです。パソコンが苦手でも大丈夫ですよ。」

1. MySQLのJOINとは?

1. MySQLのJOINとは?
1. MySQLのJOINとは?

MySQLのJOINとは、データベースにある複数のテーブルを、共通する情報をもとに結合して表示するための仕組みです。 データベースとは、たくさんの情報を表の形で整理して保存しておく箱のようなものです。

JOINを使わない場合、表は一つずつしか見られません。しかし実際の仕事や学習では、 「誰が」「何を」「いつ」行ったのかを、まとめて確認したい場面がよくあります。 そのときに活躍するのがMySQLのJOINです。

難しく感じるかもしれませんが、「別々の紙の表を、同じ番号の人ごとに重ねて見る」と考えると理解しやすくなります。

2. JOINを説明するためのサンプルテーブル

2. JOINを説明するためのサンプルテーブル
2. JOINを説明するためのサンプルテーブル

まずは、JOINの説明で使うテーブルを確認しましょう。 今回は「users(利用者)」と「orders(注文)」という2つの表を使います。

usersテーブル(利用者の表)


id | name       | age
---+------------+-----
1  | 山田太郎   | 25
2  | 佐藤花子   | 19
3  | 鈴木一郎   | 30
4  | 高橋次郎   | 22

ordersテーブル(注文の表)


id | user_id | product
---+---------+---------
1  | 1       | ノート
2  | 1       | ペン
3  | 3       | パソコン
4  | 5       | マウス

user_idは、「どの利用者の注文か」を表す番号です。 usersテーブルのidと同じ数字を使うことで、誰の注文なのかが分かるようになっています。

3. INNER JOINの基本

3. INNER JOINの基本
3. INNER JOINの基本

INNER JOINは、両方のテーブルに共通して存在するデータだけを表示します。 「両方に載っている人だけをまとめて見る」というイメージです。


SELECT users.name, orders.product
FROM users
INNER JOIN orders
ON users.id = orders.user_id;

実行結果


name       | product
-----------+----------
山田太郎   | ノート
山田太郎   | ペン
鈴木一郎   | パソコン

usersとordersの両方に存在する人だけが表示されています。 ordersに存在しない佐藤花子さんや高橋次郎さんは表示されません。 これがINNER JOINの特徴です。

4. LEFT JOINの基本

4. LEFT JOINの基本
4. LEFT JOINの基本

LEFT JOINは、左側に書いたテーブルを基準にして表示します。 注文がなくても、利用者の情報はすべて表示されます。


SELECT users.name, orders.product
FROM users
LEFT JOIN orders
ON users.id = orders.user_id;

実行結果


name       | product
-----------+----------
山田太郎   | ノート
山田太郎   | ペン
佐藤花子   | NULL
鈴木一郎   | パソコン
高橋次郎   | NULL

注文がない人はproductがNULLになります。 NULLとは「何も入っていない」という意味です。 LEFT JOINは、「全員の名簿を見たいとき」によく使われます。

5. RIGHT JOINの基本

5. RIGHT JOINの基本
5. RIGHT JOINの基本

RIGHT JOINは、右側に書いたテーブルを基準にして表示します。 今回は注文の表を中心に見たい場合に使います。


SELECT users.name, orders.product
FROM users
RIGHT JOIN orders
ON users.id = orders.user_id;

実行結果


name       | product
-----------+----------
山田太郎   | ノート
山田太郎   | ペン
鈴木一郎   | パソコン
NULL       | マウス

user_idが5の注文は、usersテーブルに存在しないため、名前がNULLになります。 RIGHT JOINは、「注文の一覧をすべて確認したい」ときに役立ちます。

6. JOINでよく使われる考え方

6. JOINでよく使われる考え方
6. JOINでよく使われる考え方

MySQLのJOINを理解するコツは、「どの表を基準にしたいか」を意識することです。 INNER JOINは共通部分だけ、LEFT JOINは左側を全部、RIGHT JOINは右側を全部表示します。

最初は混乱しやすいですが、紙の表を指でなぞりながら見比べるように考えると、 少しずつ仕組みが見えてきます。 プログラミング未経験でも、焦らず繰り返し見ることが大切です。

カテゴリの一覧へ
新着記事
New1
PostgreSQL
PostgreSQLのLIMIT・OFFSETとパフォーマンス問題を完全解説|初心者でもわかる安全な使い方
New2
MySQL
MySQLのUPDATE文でデータを更新する基本を徹底解説|SQL初心者でもわかるデータベース更新入門
New3
PostgreSQL
PostgreSQLのOFFSET完全入門|並び替えと組み合わせてデータをスキップする方法を初心者向けに解説
New4
MySQL
MySQLで複数行INSERTを行う方法と注意点を徹底解説|SQL基礎から学ぶデータベース入門
人気記事
No.1
Java&Spring記事人気No1
PostgreSQL
PostgreSQLのDISTINCT完全ガイド|SQLで重複データを除外する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
PostgreSQL
PostgreSQLの主キー・外部キーを完全解説!初心者でもわかる設定方法と考え方
No.3
Java&Spring記事人気No3
PostgreSQL
PostgreSQLのUPDATE文の使い方(部分更新・条件更新)
No.4
Java&Spring記事人気No4
PostgreSQL
PostgreSQLとは?初心者向けに特徴をわかりやすく解説
No.5
Java&Spring記事人気No5
PostgreSQL
PostgreSQLのLEFT JOIN完全入門!不足データを補いながらテーブル結合する仕組みをやさしく解説
No.6
Java&Spring記事人気No6
PostgreSQL
PostgreSQLスキーマ設計のベストプラクティス完全ガイド|初心者でもわかるデータベース整理術
No.7
Java&Spring記事人気No7
PostgreSQL
PostgreSQLの権限管理を完全解説|スキーマ単位で理解するデータベースセキュリティの基礎
No.8
Java&Spring記事人気No8
PostgreSQL
PostgreSQLのpublicスキーマの役割と扱い方