JOIN はSQLの句で、関連する値を持つ列に基づいて2つ以上のテーブルから行を結合するために使用されます。その主な目的は、完全かつ包括的な情報を持つ単一のデータセットを取得することです。ここでいう「完全」とは、テーブル間のリレーションによって得られる列の組み合わせからなるデータ構造を指します。
多様なデータ取得のニーズを満たすために、JOINコマンドは OUTER JOIN、INNER JOIN、RIGHT JOIN、LEFT JOIN のいくつかの種類に分けられます。
SQL JOINの種類の違い
以下に、さまざまなJOIN句の説明と構文例を示し、それぞれの違いを理解するのに役立ててください。
1. FULL OUTER JOIN
Outer join(またはFull Outer Join)は、結合される両方のテーブルから、一致する値がある行もない行もすべてのレコード(行)を返します。2つのテーブル間に一致するデータがない場合、結合結果の欠落部分は自動的にNULL値で埋められます。
構文:
SQL
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に置き換えられます。
構文:
SQL
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になります。
構文:
SQL
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
4. INNER JOIN(補足)
Inner Joinは最も頻繁に使用される句です。Outer Joinとは異なり、Inner Joinはより厳密に動作し、結合される両方のテーブルに一致するデータ(積集合)を持つ行のみを返します。
構文:
SQL
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;






