Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

右結合(ウケツゴウ)とは | 意味や読み方など丁寧でわかりやすい用語解説

右結合(ウケツゴウ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

右結合 (ウゲンケツゴウ)

英語表記

right join (ライトジョイン)

用語解説

リレーショナルデータベースにおいて、複数のテーブルからデータを結合して取得する際の方法の一つに「右結合」がある。これはSQLのRIGHT JOINまたはRIGHT OUTER JOIN句を用いて実行される結合方式である。右結合の基本的な役割は、結合条件に一致する行があるかどうかにかかわらず、クエリで指定された二つのテーブルのうち「右側のテーブル」のすべての行を結果セットに含めることにある。

より具体的に右結合の動作を説明する。テーブル結合は、共通のキー(例えばIDなど)に基づいて、異なるテーブルに格納されている関連する情報を一つにまとめるために利用される。例えば、顧客情報が格納されたテーブルと、その顧客が行った注文情報が格納されたテーブルがあった場合、特定の顧客の情報をその顧客が行った全ての注文情報と組み合わせて表示するといった操作が可能になる。右結合は、このような結合を行う際に、どちらのテーブルの情報を「基準」とするかという点で特徴を持つ。

右結合では、まずSQLクエリのRIGHT JOINキーワードの後に指定されたテーブルが「右側のテーブル」として扱われる。そして、その右側のテーブルに含まれるすべての行が、結果セットに必ず含まれることになる。次に、RIGHT JOINキーワードの前に指定されたテーブル(「左側のテーブル」)から、右側のテーブルの行と結合条件に一致する行を探す。もし、結合条件に一致する行が左側のテーブルに見つかれば、それらの行は結合されて結果セットに含まれる。

しかし、右側のテーブルの特定の行に対して、結合条件に一致する行が左側のテーブルに存在しない場合、右側のテーブルのその行は結果セットに残りつつ、左側のテーブルから来るべき列の箇所にはすべて「NULL」という特殊な値が埋められる。NULLは「データが存在しない」ことや「不明な値」であることを示す。つまり、右結合は右側のテーブルの完全性を保証するものであり、左側のテーブルに一致するデータがなくても、右側のテーブルのデータが欠落することはないという特性を持つ。

この特性から、右結合は特定のシナリオで非常に有用となる。例えば、全てのマスターデータ(基準となるデータ)を一覧表示したいが、それに関連するトランザクションデータ(取引記録など)がまだ存在しない場合でも、マスターデータは表示させたいという要件がある場合に役立つ。具体的な例としては、商品カテゴリのマスタテーブルと、そのカテゴリに属する商品の詳細テーブルがあったとする。右結合で商品カテゴリテーブルを右側に、商品詳細テーブルを左側に指定して結合した場合、まだ一つも商品が登録されていないカテゴリがあったとしても、そのカテゴリの情報は必ず結果に含まれ、商品詳細に関する列はNULLとして表示される。これにより、全てのカテゴリの状態を把握できるレポートなどを作成する際に有効である。

右結合は「左結合」(LEFT JOINまたはLEFT OUTER JOIN)と対称的な関係にある。左結合は左側のテーブルを基準にするが、右結合は右側のテーブルを基準にする。実際には、テーブルの記述順序を入れ替えることで、右結合で得られる結果を左結合で得ることも可能である。例えば、「テーブルA RIGHT JOIN テーブルB ON ...」というクエリは、「テーブルB LEFT JOIN テーブルA ON ...」と実質的に同じ結果をもたらす。そのため、多くのデータベース開発者は一貫性の観点から左結合をより頻繁に使用し、右結合は特定の状況やクエリの意図を明確にするために選択されることがある。どちらの結合方法を用いるかは、クエリの目的と、どちらのテーブルのデータが「常に必要とされる基盤」であるかによって判断される。

関連コンテンツ