サイトアイコン プログラマー(PG)・システムエンジニア(SE)になるための入門講座

LEFT JOINとは?SQL初心者向けに基本から使い方までわかりやすく解説

LEFT JOINとは?SQL初心者向けに基本から使い方までわかりやすく解説

LEFT JOIN(レフトジョイン)とは、左側のテーブルにあるデータをすべて取得し、右側のテーブルで一致するデータがあれば結合して表示するSQLの機能です。

SQLでデータを検索する際、「社員は全員表示したいが、部署情報がある人だけ部署名も表示したい」といった場面で活躍します。社内SEや運用保守、システム開発では非常によく利用されるJOINの一つです。

LEFT JOINとは?

LEFT JOINは、SQL(Structured Query Language)のテーブル結合方法の一つです。

左側(FROM句で指定したテーブル)のデータは必ず表示されます。

一方、右側(JOINしたテーブル)に一致するデータが存在しない場合は、その列にはNULL(値が存在しないことを表す値)が表示されます。

LEFT JOINはどんな場面で使われるのか

IT現場では、次のようなケースで利用されています。

「一致しないデータも確認したい」という業務では、LEFT JOINがよく使われます。

なぜLEFT JOINが重要なのか

実際の業務では、関連データがまだ登録されていないケースがあります。

例えば、新しく社員を登録したものの、部署情報がまだ登録されていない場合でも、社員一覧には表示したいことがあります。

INNER JOINでは表示されませんが、LEFT JOINなら社員情報は表示され、部署名だけがNULLになります。

登録漏れや設定ミスの確認にも役立つため、多くのシステムで利用されています。

LEFT JOINのイメージ

社員テーブル

社員ID 氏名 部署ID
1001 山田 1
1002 佐藤 2
1003 鈴木 5

部署テーブル

部署ID 部署名
1 総務部
2 営業部

LEFT JOINを実行すると次のようになります。

社員ID 氏名 部署名
1001 山田 総務部
1002 佐藤 営業部
1003 鈴木 NULL

部署ID「5」は部署テーブルに存在しませんが、社員情報は表示されます。

LEFT JOINの基本構文

SELECT *
FROM 社員
LEFT JOIN 部署
ON 社員.部署ID = 部署.部署ID;

ON句では、どの列同士を関連付けるかを指定します。

INNER JOINとの違い

比較項目 INNER JOIN LEFT JOIN
一致するデータ 表示する 表示する
一致しない左側データ 表示しない 表示する
NULLが表示される 基本的にない ある
登録漏れの確認 苦手 得意

初心者は「LEFT JOINは左側をすべて表示する」と覚えると理解しやすくなります。

実際のIT現場での利用例

業務 利用例
社員管理 部署未登録の社員を確認する
販売管理 売れていない商品を調査する
顧客管理 注文履歴がない顧客を抽出する
会員管理 契約していない会員を確認する
システム運用 登録漏れデータを調査する

業務でよくあるトラブル

NULLが大量に表示される

結合条件が間違っている、または右側テーブルのデータが不足している可能性があります。

取得件数が想定より多い

LEFT JOINは左側テーブルをすべて表示するため、INNER JOINより件数が多くなることがあります。

必要なデータが表示されない

WHERE句でNULLを除外してしまうと、LEFT JOINの意味がなくなる場合があります。

原因の切り分け

確認項目 確認内容
結合キー 正しい列で結合しているか
データ型 データ型が一致しているか
NULL 結合キーにNULLがないか
WHERE句 NULLを除外していないか
登録漏れ 右側テーブルにデータが存在するか

確認する順番

  1. 左側テーブルのデータ件数を確認する
  2. 右側テーブルに対象データがあるか確認する
  3. 結合キーを確認する
  4. ON句を確認する
  5. WHERE句を確認する
  6. NULLの件数を確認する

GUIでの確認方法

GUIツールでは、LEFT JOINの結果を表形式で確認でき、NULLの有無も簡単に把握できます。

CUI(コマンド)での確認方法

各データベースのコマンドラインツールからSQLを実行できます。

ログの確認方法

LEFT JOIN自体の実行内容はWindowsイベントログには記録されません。

SQLエラーが発生した場合は、データベースサーバーのエラーログや実行ログを確認します。

イベントビューアーの確認方法

通常は不要です。

データベースサービスの停止や接続エラーが疑われる場合のみ、Windowsイベントビューアーで関連ログを確認します。

PowerShellで確認できること

ショートカットキー

キー 用途
F5 SQL実行(SSMS)
Ctrl + A 全文選択
Ctrl + C 実行停止
Ctrl + F 検索

初心者がやりがちなミス

筆者の経験談

社内SEとして社員マスターを調査した際、INNER JOINでは問題が見つかりませんでした。しかし、LEFT JOINに変更すると部署情報が登録されていない社員が複数見つかり、マスターデータの登録漏れが原因だと判明しました。

この経験から、「データが存在しないことを確認したい場合はLEFT JOINを使う」という考え方が重要だと実感しました。

上司へ報告するポイント

エスカレーションするタイミング

新人が覚えておくべきポイント

関連するIT用語

よくある質問(FAQ)

LEFT JOINはどんなときに使いますか?

左側のテーブルにあるデータをすべて表示したい場合や、関連データが存在しないレコードを確認したい場合に使用します。

NULLはエラーですか?

いいえ。NULLは「値が存在しない」ことを表すデータベース上の値であり、エラーではありません。

LEFT JOINとINNER JOINはどちらを使えばよいですか?

一致したデータだけ取得したい場合はINNER JOIN、左側のデータをすべて表示したい場合はLEFT JOINを使用します。

まとめ

LEFT JOINは、左側のテーブルを基準にすべてのデータを取得し、一致する右側のデータがあれば結合するSQLの機能です。

特に、登録漏れや未設定データの調査、マスターデータの整合性確認など、IT業務では非常に活用されます。

まずは「左側は必ず表示される」「一致しない場合はNULLになる」という2つのポイントを理解し、INNER JOINとの違いを使い分けられるようになることが、SQLを習得する第一歩です。

モバイルバージョンを終了