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

MySQLのRIGHT JOINを完全理解!初心者でもわかる特徴と注意点をやさしく解説

MySQLのRIGHT JOINの特徴と注意点
MySQLのRIGHT JOINの特徴と注意点

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

生徒

「JOINって種類が多くて混乱します。RIGHT JOINって、いつ使えばいいんですか?」

先生

「RIGHT JOINは、右側の表を必ず全部表示したいときに使います。左側の表にデータがなくても、右側を優先するのが特徴です。」

生徒

「右側って言われても、どっちが右かわからなくなります……」

先生

「FROMの後に書いた表が左、RIGHT JOINの後に書いた表が右です。文章として左から右に読む感覚で大丈夫です。」

生徒

「パソコンをほとんど触ったことがなくても理解できますか?」

先生

「紙の名簿を並べて見比べるイメージで説明します。キーボード操作が苦手でも問題ありません。」

1. RIGHT JOINとは何か?基本の考え方

1. RIGHT JOINとは何か?基本の考え方
1. RIGHT JOINとは何か?基本の考え方

MySQLのRIGHT JOINは、複数のテーブルを結合するときに使うSQL文の一種です。 テーブルとは、行と列でできた表のことで、Excelの表や紙の名簿を想像するとわかりやすいです。

RIGHT JOINの最大の特徴は、「右側に書いたテーブルのデータをすべて表示する」ことです。 左側のテーブルに対応するデータがなくても、右側の情報は必ず表示されます。

たとえば「注文一覧」と「会員一覧」があり、会員一覧を必ず全部表示したい場合にRIGHT JOINが役立ちます。 注文していない会員も含めて確認したい、という場面です。

2. サンプルテーブルでRIGHT JOINを体験してみよう

2. サンプルテーブルでRIGHT JOINを体験してみよう
2. サンプルテーブルでRIGHT JOINを体験してみよう

まずは、SQLを実行する前のテーブルの中身を見てみましょう。


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

ordersテーブル
id | user_id | item
---+---------+----------
1  | 1       | ノート
2  | 1       | ペン
3  | 3       | 消しゴム

usersは会員名簿、ordersは注文履歴です。 まだ一度も注文していない会員もいます。


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

このSQLを実行すると、次のような結果になります。


name       | item
-----------+----------
山田太郎   | ノート
山田太郎   | ペン
鈴木一郎   | 消しゴム
佐藤花子   | NULL
高橋次郎   | NULL

注文していない佐藤花子さんと高橋次郎さんも、きちんと表示されています。 注文情報がない部分はNULLと表示されます。 NULLとは「値が存在しない」という意味です。

3. RIGHT JOINの特徴をやさしく整理

3. RIGHT JOINの特徴をやさしく整理
3. RIGHT JOINの特徴をやさしく整理

RIGHT JOINの特徴を一言でまとめると、「右の表が主役」です。 SQL文の右側に書いたテーブルの行は、必ず結果に含まれます。

左側の表に一致するデータがない場合でも、右側の情報だけは表示され、 左側の列はNULLになります。

これは、名簿を基準にして、そこに注文メモを貼り付けるイメージです。 メモがない人の欄は空白のままですが、名簿そのものは全員分あります。

4. RIGHT JOINを使うときの注意点

4. RIGHT JOINを使うときの注意点
4. RIGHT JOINを使うときの注意点

RIGHT JOINは便利ですが、初心者がつまずきやすい注意点もあります。 一つ目は「左右がわかりにくい」ことです。

FROMの後が左、RIGHT JOINの後が右、というルールを忘れると、 思った結果にならないことがあります。

二つ目は、LEFT JOINと同じ結果を順番を変えて書けてしまう点です。 実務ではLEFT JOINのほうが使われることが多く、 RIGHT JOINはあまり見かけない場合もあります。


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

このSQLは、先ほどのRIGHT JOINと同じ結果になります。 そのため「どちらか一つ覚えれば十分」と言われることもあります。

5. RIGHT JOINが役立つ具体的な場面

5. RIGHT JOINが役立つ具体的な場面
5. RIGHT JOINが役立つ具体的な場面

RIGHT JOINは、「この表のデータは必ず全部見たい」と決まっている場合に向いています。 たとえば、社員名簿を必ず全員分表示し、 そこに研修参加履歴をくっつけたい場合などです。


SELECT employees.name, trainings.title
FROM trainings
RIGHT JOIN employees
ON trainings.employee_id = employees.id;

研修に参加していない社員も、名前だけは必ず表示されます。 一覧表を作るときに、「抜け漏れを防ぎたい」場合に安心して使えます。

MySQLのRIGHT JOINは、考え方さえ理解できれば難しくありません。 右側を基準にする、と頭の中で決めてからSQLを書くことが大切です。

カテゴリの一覧へ
新着記事
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のLEFT JOIN完全入門!不足データを補いながらテーブル結合する仕組みをやさしく解説
No.4
Java&Spring記事人気No4
PostgreSQL
PostgreSQLのUPDATE文の使い方(部分更新・条件更新)
No.5
Java&Spring記事人気No5
PostgreSQL
PostgreSQLとは?初心者向けに特徴をわかりやすく解説
No.6
Java&Spring記事人気No6
PostgreSQL
PostgreSQLスキーマ設計のベストプラクティス完全ガイド|初心者でもわかるデータベース整理術
No.7
Java&Spring記事人気No7
PostgreSQL
PostgreSQLのWHERE句を完全解説|初心者でもわかる条件指定の基本と使い方
No.8
Java&Spring記事人気No8
PostgreSQL
PostgreSQLスキーマ作成・削除完全ガイド!初心者でもわかるデータベース設計の基礎