翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
JOIN 句
注記
この SQL コマンドをサポートする AWS データソース統合を確認するには、「」を参照してくださいサポートされている OpenSearch SQL コマンドと関数。
SQL 結合は、結合条件に基づいて 2 つのリレーションの行を結合するために使用されます。次のセクションでは、全体的な結合構文とさまざまなタイプの結合を例とともに説明します。
[Syntax] (構文)
relation INNER JOIN relation [ join_criteria ]
パラメータ
-
リレーション
結合するリレーションを指定します。
-
join_type
結合タイプを指定します。
構文:
INNER | CROSS | LEFT OUTER
-
join_criteria
あるリレーションの行を別のリレーションの行と組み合わせる方法を指定します。
構文:
ON boolean_expression | USING ( column_name [ , ... ] )
-
ブール式
ブール型の戻り型を持つ式を指定します。
結合タイプ
-
内部結合
内部結合は明示的に指定する必要があります。両方のリレーションで一致する値を持つ行を選択します。
構文:
relation INNER JOIN relation [ join_criteria ]
-
左結合
左結合は、左のリレーションからすべての値と右のリレーションから一致した値を返します。一致しない場合は NULL を追加します。これは、左外部結合とも呼ばれます。
構文:
relation LEFT OUTER JOIN relation [ join_criteria ]
-
クロス結合
クロス結合は、2 つのリレーションのデカルト積を返します。
構文:
relation CROSS JOIN relation [ join_criteria ]
例
-- Use employee and department tables to demonstrate different type of joins. SELECT * FROM employee; +---+-----+------+ | id| name|deptno| +---+-----+------+ |105|Chloe| 5| |103| Paul| 3| |101| John| 1| |102| Lisa| 2| |104| Evan| 4| |106| Amy| 6| +---+-----+------+ SELECT * FROM department; +------+-----------+ |deptno| deptname| +------+-----------+ | 3|Engineering| | 2| Sales| | 1| Marketing| +------+-----------+ -- Use employee and department tables to demonstrate inner join. SELECT id, name, employee.deptno, deptname FROM employee INNER JOIN department ON employee.deptno = department.deptno; +---+-----+------+-----------| | id| name|deptno| deptname| +---+-----+------+-----------| |103| Paul| 3|Engineering| |101| John| 1| Marketing| |102| Lisa| 2| Sales| +---+-----+------+-----------| -- Use employee and department tables to demonstrate left join. SELECT id, name, employee.deptno, deptname FROM employee LEFT JOIN department ON employee.deptno = department.deptno; +---+-----+------+-----------| | id| name|deptno| deptname| +---+-----+------+-----------| |105|Chloe| 5| NULL| |103| Paul| 3|Engineering| |101| John| 1| Marketing| |102| Lisa| 2| Sales| |104| Evan| 4| NULL| |106| Amy| 6| NULL| +---+-----+------+-----------| -- Use employee and department tables to demonstrate cross join. SELECT id, name, employee.deptno, deptname FROM employee CROSS JOIN department; +---+-----+------+-----------| | id| name|deptno| deptname| +---+-----+------+-----------| |105|Chloe| 5|Engineering| |105|Chloe| 5| Marketing| |105|Chloe| 5| Sales| |103| Paul| 3|Engineering| |103| Paul| 3| Marketing| |103| Paul| 3| Sales| |101| John| 1|Engineering| |101| John| 1| Marketing| |101| John| 1| Sales| |102| Lisa| 2|Engineering| |102| Lisa| 2| Marketing| |102| Lisa| 2| Sales| |104| Evan| 4|Engineering| |104| Evan| 4| Marketing| |104| Evan| 4| Sales| |106| Amy| 4|Engineering| |106| Amy| 4| Marketing| |106| Amy| 4| Sales| +---+-----+------+-----------|