

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# JOIN 句
<a name="join-clause"></a>

SQL JOIN 句は、共通のフィールドに基づいて 2 つ以上のテーブルのデータを結合するために使用されます。結果は、指定した結合方法によって変わる場合もあります。左と右の外部結合は、もう一方のテーブルに一致するものが見つからない場合に、結合したどちらかのテーブルの値を保持します。

JOIN タイプと結合条件の組み合わせによって、最終結果セットに含まれる行が決まります。SELECT 句と WHERE 句は、返される列と行のフィルタリング方法を制御します。さまざまな JOIN タイプとそれらを効果的に使用する方法を理解することは、複数のテーブルからのデータを柔軟かつ強力な方法で組み合わせることができるため、SQL の重要なスキルです。

## 構文
<a name="join-clause-syntax"></a>

```
SELECT column1, column2, ..., columnn
FROM table1
join_type table2
ON table1.column = table2.column;
```

## パラメータ
<a name="join-clause-parameters"></a>

 *SELECT column1、column2、...、columnN*   
結果セットに含める列。JOIN に関係するテーブルのいずれかまたは両方から列を選択できます。

 *FROM テーブル 1*   
JOIN オペレーションの最初の (左) テーブル。

 *[JOIN \| INNER JOIN \| LEFT [OUTER] JOIN \| RIGHT [OUTER] JOIN \| FULL [OUTER] JOIN] table2: *   
実行する JOIN のタイプ。JOIN または INNER JOIN は、両方のテーブルで一致する値を持つ行のみを返します。  
LEFT [OUTER] JOIN は、左側のテーブルからすべての行を返し、右側のテーブルから一致する行を返します。  
RIGHT [OUTER] JOIN は、右側のテーブルからすべての行を返し、左側のテーブルから一致する行を返します。  
FULL [OUTER] JOIN は、一致があるかどうかにかかわらず、両方のテーブルのすべての行を返します。  
CROSS JOIN は、2 つのテーブルから行のデカルト積を作成します。

 *ON table1.column = table2.column*   
2 つのテーブルの行の一致方法を指定する結合条件。結合条件は、1 つ以上の列に基づくことができます。

 *WHERE 条件: *   
指定された条件に基づいて、結果セットをさらにフィルタリングするために使用できるオプションの句。

## 例
<a name="Join_examples"></a>

次の例は、USING 句が含まれている 2 つのテーブル間の結合です。この場合、listid と eventid の各列が結合列として使用されます。結果は 5 行に制限されます。

```
select listid, listing.sellerid, eventid, listing.dateid, numtickets
from listing join sales
using (listid, eventid)
order by 1
limit 5;

listid | sellerid | eventid | dateid | numtickets
-------+----------+---------+--------+-----------
1      | 36861    | 7872    | 1850   | 10
4      | 8117     | 4337    | 1970   | 8
5      | 1616     | 8647    | 1963   | 4
5      | 1616     | 8647    | 1963   | 4
6      | 47402    | 8240    | 2053   | 18
```