※ この記事にはアフィリエイトリンクが含まれます
SQL で複数のテーブルを結合するときによく使われるのが JOIN(ジョイン) です。
中でも、LEFT JOIN と RIGHT JOIN は「左右どっちが基準?」「何が残るの?」という部分で混乱しやすいポイントでもあります。
実務でも、
- LEFT JOIN と RIGHT JOIN の違いが曖昧なまま使っている
- 本番データを JOIN したら思わぬ NULL の行 が増えて焦った
- SQL を読むときに「左右」の意味で迷うことが多い
といった声はよく耳にします。
本記事では、RIGHT JOIN と LEFT JOIN の違いを直感的に理解できるように解説します。
この記事を読み終える頃には、JOIN の「右」「左」が迷わず読めるようになり、日常的に書く SQL の可読性や理解度がぐっと上がるはずです。
SQLを扱えるエンジニアは業務系企業や社内SE領域で高く評価される傾向があります。
SQLスキルを活かせる転職先を探したい方はこちらが参考になります。ぜひご覧ください。
社内SEになるなら、「社内SE転職ナビ」がおすすめ

「社内SE転職ナビ」は社内SEに特化したITエンジニア専門の転職・求人サイトです。
エンジニアの社内SEの定義は、「客先常駐がないこと」

社内SEに特化しているこそ、豊富な社内SE・自社開発・情報システム求人を保有しています。
保有求人数は10,000件以上、サイト公開求人数は4,000件以上なので、
社内SEを目指している方は会員登録しておいて損はないです!
LEFT JOINとRIGHT JOINの違いは?
結論として、LEFT JOIN と RIGHT JOIN の違いは たった1つ です。
【結論】どちらのテーブルを”必ず残すか”
- LEFT JOIN
→FROMの直後に書かれた 左側のテーブルを必ず残す - RIGHT JOIN
→JOINの右側に書かれた 右側のテーブルを必ず残す
具体例でみると一目瞭然
-- LEFT JOIN(左側:customers を必ず残す)
FROM customers
LEFT JOIN orders ON customers.id = orders.customer_id;この場合、
- 顧客(customers)は全件残る
- 注文がない顧客は、注文情報が
NULLになる
-- RIGHT JOIN(右側:orders を必ず残す)
FROM customers
RIGHT JOIN orders ON customers.id = orders.customer_id;この場合、
- 注文テーブル(orders)側の行はすべて残る
- 顧客情報がない注文(通常はイレギュラー)は
NULLになる
違いは「基準が反対なだけ」
LEFT と RIGHT の動きは 鏡写し です。
どちらも「片側のテーブルを基準に残し、反対側は一致しない部分が NULL になる」という動作は同じ。
つまり、
- LEFT JOIN を使うか
- RIGHT JOIN を使うか
は “どちらのテーブルをメインに見るか” だけで決まります。
実務でよく使われるのはLEFT JOIN
現場では圧倒的に LEFT JOIN の方がよく使われます。
理由は以下のとおり。
- FROM 句に「メインとなるテーブル」を置ける
- 読み手が「左側のテーブル基準」と理解しやすい
- SQL を左から読むため可読性が高い
RIGHT JOIN は、
「既存の SQL の流れを変えたくないとき」や
「FROM 句に置けない特殊な都合があるとき」程度に使われることが多いです。
まとめ
LEFT JOIN と RIGHT JOIN を正しく使い分けられると、
SQL の読みやすさ・保守性・データ分析の精度が大きく向上します。
この記事が、JOIN の「左右」への苦手意識をなくす助けになれば幸いです。
社内SEになるなら、「社内SE転職ナビ」がおすすめ

「社内SE転職ナビ」は社内SEに特化したITエンジニア専門の転職・求人サイトです。
エンジニアの社内SEの定義は、「客先常駐がないこと」

社内SEに特化しているこそ、豊富な社内SE・自社開発・情報システム求人を保有しています。
保有求人数は10,000件以上、サイト公開求人数は4,000件以上なので、
社内SEを目指している方は会員登録しておいて損はないです!
コメント