RIGHT JOINとLEFT JOINの違いをわかりやすく解説!

※ この記事にはアフィリエイトリンクが含まれます


SQL で複数のテーブルを結合するときによく使われるのが JOIN(ジョイン) です。
中でも、LEFT JOINRIGHT JOIN は「左右どっちが基準?」「何が残るの?」という部分で混乱しやすいポイントでもあります。

実務でも、

  • LEFT JOIN と RIGHT JOIN の違いが曖昧なまま使っている
  • 本番データを JOIN したら思わぬ NULL の行 が増えて焦った
  • SQL を読むときに「左右」の意味で迷うことが多い

といった声はよく耳にします。

本記事では、RIGHT JOIN と LEFT JOIN の違いを直感的に理解できるように解説します。
この記事を読み終える頃には、JOIN の「右」「左」が迷わず読めるようになり、日常的に書く SQL の可読性や理解度がぐっと上がるはずです。

SQLを扱えるエンジニアは業務系企業や社内SE領域で高く評価される傾向があります。
SQLスキルを活かせる転職先を探したい方はこちらが参考になります。ぜひご覧ください。

社内SEになるなら、「社内SE転職ナビ」がおすすめ

引用:社内SE転職ナビ

「社内SE転職ナビ」は社内SEに特化したITエンジニア専門の転職・求人サイトです。

エンジニアの社内SEの定義は、「客先常駐がないこと」

引用:社内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転職ナビ」は社内SEに特化したITエンジニア専門の転職・求人サイトです。

エンジニアの社内SEの定義は、「客先常駐がないこと」

引用:社内SE転職ナビ


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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

沖縄出身のエンジニアです。IT業界で5年以上の経験があり、主にC#やPHPを使って開発を行ってきました。新しい技術にも興味があり、日々学びながらスキルアップを目指しています。

コメント

コメントする

CAPTCHA


目次