SQLにおけるJOINは、関連する値を持つ列に基づいて2つ以上のテーブルの行を結合するために使用される句です。その主な目的は、完全で包括的な情報を持つ1つのデータセットを取得することです。ここでいう「完全」とは、テーブル間のリレーションの結果として得られる列の組み合わせから得られるデータの構成を指します。
多様なデータ取得要件を満たすために、JOINコマンドはいくつかの種類に分けられます。すなわち、OUTER JOIN、INNER JOIN、RIGHT JOIN、LEFT JOINです。
SQL JOINの種類の違い
以下は、さまざまなJOIN句とその記述構文の例に関する説明で、違いを理解するのに役立ちます。
1. FULL OUTER JOIN
Outer Join(またはFull Outer Join)は、結合された両方のテーブルにおいて、一致する値がある行とない行のすべてのレコードまたはデータ行を返します。2つのテーブル間にデータの一致がない場合、結合結果の空の部分には自動的にNULL値が割り当てられます。
記述構文:
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
2. LEFT JOIN
Left Joinは、結合された2つのテーブルのうち、左側のテーブル(最初のテーブル)のすべてのレコードを返す操作です。左側のテーブルのデータが右側のテーブル(2番目のテーブル)のデータと一致しない場合でも、左側のテーブルのすべてのデータが取得され表示されます。一致しない右側のテーブルのデータはNULLに置き換えられます。
記述構文:
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
3. RIGHT JOIN(補足)
Left Joinの逆として、Right Join句は右側のテーブル(2番目のテーブル)のすべてのレコードと、左側のテーブルから一致するデータを返します。左側のテーブルに一致するデータがない場合、左側の結果はNULLになります。
記述構文:
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
4. INNER JOIN(補足)
Inner Joinは最も頻繁に使用される句の種類です。Outerとは異なり、Inner Joinはより厳密に動作し、結合された両方のテーブルでデータが一致する(共通部分)行のみを返します。
記述構文:
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
著者
Wilan
バリ・アイランド・テクノの常駐寄稿者であり、テクノロジー、プログラミング、ソフトウェアエンジニアリングの世界に関する知識を積極的に共有しています。