RIGHT JOINとは?SQL初心者向けに基本から使い方までわかりやすく解説
RIGHT JOIN(ライトジョイン)とは、右側のテーブルにあるデータをすべて取得し、左側のテーブルで一致するデータがあれば結合して表示するSQLの機能です。
LEFT JOINと似ていますが、基準となるテーブルが右側になる点が大きな違いです。実際のIT現場ではLEFT JOINの方が利用されることが多く、RIGHT JOINは既存SQLの保守や他社システムの解析で見かけることがあります。
- RIGHT JOINとは?
- RIGHT JOINはどんな場面で使われるのか
- なぜRIGHT JOINを理解する必要があるのか
- RIGHT JOINのイメージ
- RIGHT JOINの基本構文
- LEFT JOINとの違い
- LEFT JOINで書き換えられる例
- IT現場でよくある利用例
- 業務でよくあるトラブル
- 原因の切り分け
- 確認する順番
- GUIでの確認方法
- CUI(コマンド)での確認方法
- ログの確認方法
- イベントビューアーの確認方法
- PowerShellで確認できること
- ショートカットキー
- 初心者がやりがちなミス
- 筆者の経験談
- 上司へ報告するポイント
- エスカレーションするタイミング
- 新人が覚えておくべきポイント
- 関連するIT用語
- よくある質問(FAQ)
- まとめ
RIGHT JOINとは?
RIGHT JOINは、SQL(Structured Query Language)のテーブル結合方法の一つです。
FROM句の後に指定したテーブルではなく、RIGHT JOINで指定した右側のテーブルを基準としてデータを取得します。
右側テーブルのデータは必ず表示され、一致する左側のデータが存在しない場合は、その列にNULL(値が存在しないことを表す値)が表示されます。
RIGHT JOINはどんな場面で使われるのか
実際の業務では次のような場面で利用されます。
- すべての部署を表示し、所属社員がいる部署だけ社員名を表示する
- すべての商品カテゴリを表示し、商品が登録されているカテゴリだけ商品名を表示する
- すべての店舗を表示し、売上がある店舗だけ売上情報を表示する
- すべての権限情報を表示し、利用者がいる権限だけユーザー情報を表示する
ただし、多くの現場ではテーブルの順番を入れ替えてLEFT JOINで記述するケースが一般的です。
なぜRIGHT JOINを理解する必要があるのか
RIGHT JOINを新規開発で使用する機会はそれほど多くありません。
しかし、既存システムのSQLを調査したり、他社が作成したSQLを保守したりする際にはRIGHT JOINが使われていることがあります。
そのため、「LEFT JOINとの違い」を理解しておくことが重要です。
RIGHT JOINのイメージ
社員テーブル
| 社員ID | 氏名 | 部署ID |
|---|---|---|
| 1001 | 山田 | 1 |
| 1002 | 佐藤 | 2 |
部署テーブル
| 部署ID | 部署名 |
|---|---|
| 1 | 総務部 |
| 2 | 営業部 |
| 3 | 情報システム部 |
RIGHT JOINを実行すると、部署テーブルを基準に表示されます。
| 社員名 | 部署名 |
|---|---|
| 山田 | 総務部 |
| 佐藤 | 営業部 |
| NULL | 情報システム部 |
「情報システム部」は所属社員がいませんが、右側テーブルのデータなので表示されます。
RIGHT JOINの基本構文
SELECT * FROM 社員 RIGHT JOIN 部署 ON 社員.部署ID = 部署.部署ID;
ON句では、関連付ける列を指定します。
LEFT JOINとの違い
| 比較項目 | LEFT JOIN | RIGHT JOIN |
|---|---|---|
| 基準となるテーブル | 左側 | 右側 |
| 左側のデータ | すべて表示 | 一致するものだけ表示 |
| 右側のデータ | 一致するものだけ表示 | すべて表示 |
| 利用頻度 | 高い | 低い |
RIGHT JOINは、テーブルの順番を入れ替えたLEFT JOINと同じ結果を取得できる場合がほとんどです。
LEFT JOINで書き換えられる例
次の2つのSQLは、取得結果が同じになります。
RIGHT JOIN
SELECT * FROM 社員 RIGHT JOIN 部署 ON 社員.部署ID = 部署.部署ID;
LEFT JOIN
SELECT * FROM 部署 LEFT JOIN 社員 ON 部署.部署ID = 社員.部署ID;
このように、テーブルの順番を入れ替えればLEFT JOINで表現できるため、開発現場ではLEFT JOINが選ばれることが多くあります。
IT現場でよくある利用例
| 業務 | 利用例 |
|---|---|
| 部署管理 | 社員がいない部署を確認する |
| 商品管理 | 商品が登録されていないカテゴリを確認する |
| 店舗管理 | 売上がない店舗を調査する |
| 権限管理 | 利用されていない権限を確認する |
業務でよくあるトラブル
NULLが多く表示される
右側テーブルに対応する左側データが存在しない可能性があります。
取得件数が想定より多い
RIGHT JOINでは右側テーブルをすべて表示するため、INNER JOINより件数が多くなることがあります。
SQLが読みにくい
複数のJOINが組み合わさると、RIGHT JOINは処理の流れを理解しにくくなる場合があります。
原因の切り分け
| 確認項目 | 確認内容 |
|---|---|
| 結合キー | 正しい列で結合しているか |
| データ型 | 型が一致しているか |
| NULL | 一致しないデータがないか |
| 右側テーブル | 対象データが存在するか |
| WHERE句 | NULLを除外していないか |
確認する順番
- 右側テーブルの件数を確認する
- 左側テーブルのデータを確認する
- 結合キーを確認する
- ON句を確認する
- NULLが発生している理由を調査する
GUIでの確認方法
- SQL Server Management Studio(SSMS)
- MySQL Workbench
- DBeaver
- pgAdmin
- Oracle SQL Developer
SQLを実行して結果を比較すると、LEFT JOINとの違いを理解しやすくなります。
CUI(コマンド)での確認方法
- mysql
- sqlcmd
- psql
- SQL*Plus
各データベースのコマンドラインツールからSQLを実行して確認できます。
ログの確認方法
RIGHT JOINの実行内容はWindowsイベントログには記録されません。
SQLエラーが発生した場合は、データベースサーバーのエラーログや実行ログを確認します。
イベントビューアーの確認方法
通常は不要です。
データベースサービスの障害や接続エラーが疑われる場合のみ、Windowsイベントビューアーを確認します。
PowerShellで確認できること
- データベースサービスの状態確認
- サーバーへの接続確認
- TCPポートの疎通確認
- サービスの起動確認
ショートカットキー
| キー | 用途 |
|---|---|
| F5 | SQL実行(SSMS) |
| Ctrl + A | 全文選択 |
| Ctrl + C | 実行停止 |
| Ctrl + F | 検索 |
初心者がやりがちなミス
- LEFT JOINとの違いを理解していない
- どちらのテーブルが基準か分からなくなる
- NULLをエラーと勘違いする
- WHERE句でNULLを除外してしまう
- RIGHT JOINを使う必要がない場面でも使用する
筆者の経験談
既存システムの保守作業でRIGHT JOINが多用されたSQLを調査したことがあります。当初は処理の流れを理解するのに時間がかかりましたが、LEFT JOINへ書き換えて考えると構造が分かりやすくなり、不具合の原因を短時間で特定できました。
現在では、新規開発ではLEFT JOINを使用し、RIGHT JOINは既存SQLを読むための知識として活用しています。
上司へ報告するポイント
- 実行したSQL
- 基準となるテーブル
- NULLになった件数
- 取得件数
- データ不足の有無
- 業務への影響範囲
エスカレーションするタイミング
- マスターデータの欠落が判明した場合
- 大量のNULLが発生している場合
- 本番データの修正が必要な場合
- システム全体へ影響する可能性がある場合
新人が覚えておくべきポイント
- RIGHT JOINは右側テーブルを基準にする。
- 一致しない左側データはNULLになる。
- LEFT JOINへ書き換えられる場合が多い。
- 既存システムの保守で見かけることがある。
- 新規開発ではLEFT JOINが選ばれることが多い。
関連するIT用語
- SQL(Structured Query Language)
- JOIN
- INNER JOIN
- LEFT JOIN
- FULL OUTER JOIN
- NULL
- 主キー(Primary Key)
- 外部キー(Foreign Key)
よくある質問(FAQ)
RIGHT JOINはよく使われますか?
利用できるSQL構文ですが、新規開発ではLEFT JOINを使用するケースが多く、RIGHT JOINは既存システムの保守や解析で見かけることが一般的です。
RIGHT JOINとLEFT JOINはどちらを覚えるべきですか?
まずはLEFT JOINを優先して学ぶことをおすすめします。RIGHT JOINはLEFT JOINとの違いを理解できれば十分対応できる場面がほとんどです。
RIGHT JOINをLEFT JOINに書き換えられますか?
はい。FROM句とJOIN句のテーブルを入れ替えることで、多くの場合はLEFT JOINで同じ結果を取得できます。
まとめ
RIGHT JOINは、右側のテーブルを基準にすべてのデータを取得し、一致する左側のデータを結合するSQLの機能です。
実務ではLEFT JOINの方が広く利用されていますが、既存システムの保守やSQLの読解ではRIGHT JOINを理解しておくことが重要です。
まずは「右側のテーブルが必ず表示される」「LEFT JOINと役割はほぼ同じで、基準となるテーブルが異なる」というポイントを押さえておけば、SQLの理解がさらに深まります。

コメント