Snowpark Migration Accelerator: 結合¶
説明¶
Merges rows from two table references using specified join conditions. For more details, see the Databricks SQL Language Reference JOIN.
A JOIN combines data from two sources (such as tables or views) into a single result set. Each row in the result contains columns from both sources based on a specified condition. For a detailed explanation of joins, see Working with Joins. (Snowflake SQL Language Reference JOIN)
構文¶
サンプルソースパターン¶
セットアップデータ¶
Databricks¶
Snowflake¶
パターンコード¶
Databricks¶
ここでは、「employee」と「department」の2つのサンプルテーブルを使用して、内部結合の仕組みを説明します。内側結合は、指定した列が一致する両方のテーブルの行を結合します。
id |
name |
deptno |
deptname |
|---|---|---|---|
103 |
Paul |
3 |
エンジニアリング |
101 |
John |
1 |
マーケティング |
102 |
Lisa |
2 |
販売 |
employeeテーブルとdepartmentテーブルを使用して、左結合の仕組みを説明します。この例では、左(最初の)テーブルのすべての記録を保持しながら、2つのテーブルのデータを結合する方法を理解するのに役立ちます。
id |
name |
deptno |
deptname |
|---|---|---|---|
105 |
Chloe |
5 |
null |
103 |
Paul |
3 |
エンジニアリング |
101 |
John |
1 |
マーケティング |
102 |
Lisa |
2 |
販売 |
104 |
Evan |
4 |
null |
106 |
Amy |
6 |
null |
employeeテーブルとdepartmentテーブルを使用して、 SQL で RIGHT JOIN がどのように機能するかを見てみましょう。
id |
name |
deptno |
deptname |
|---|---|---|---|
103 |
Paul |
3 |
エンジニアリング |
102 |
Lisa |
2 |
販売 |
101 |
John |
1 |
マーケティング |
employeeテーブルとdepartmentテーブルを使用して、完全結合がどのように機能するかを見てみましょう。完全結合は、どちらかのテーブルの一致しない行を含め、両方のテーブルのすべての記録を結合します。
id |
name |
deptno |
deptname |
|---|---|---|---|
101 |
John |
1 |
マーケティング |
102 |
Lisa |
2 |
販売 |
103 |
Paul |
3 |
エンジニアリング |
104 |
Evan |
4 |
null |
105 |
Chloe |
5 |
null |
106 |
Amy |
6 |
null |
employeeテーブルとdepartmentテーブルの間に交差結合を作成し、あるテーブルのすべての行と別のテーブルのすべての行を結合する方法を示します。
id |
name |
deptno |
deptname |
|---|---|---|---|
105 |
Chloe |
5 |
エンジニアリング |
105 |
Chloe |
5 |
販売 |
105 |
Chloe |
5 |
マーケティング |
103 |
Paul |
3 |
エンジニアリング |
103 |
Paul |
3 |
販売 |
103 |
Paul |
3 |
マーケティング |
101 |
John |
1 |
エンジニアリング |
101 |
John |
1 |
販売 |
101 |
John |
1 |
マーケティング |
102 |
Lisa |
2 |
エンジニアリング |
102 |
Lisa |
2 |
販売 |
102 |
Lisa |
2 |
マーケティング |
104 |
Evan |
4 |
エンジニアリング |
104 |
Evan |
4 |
販売 |
104 |
Evan |
4 |
マーケティング |
106 |
Amy |
6 |
エンジニアリング |
106 |
Amy |
6 |
販売 |
106 |
Amy |
6 |
マーケティング |
employeeテーブルとdepartmentテーブルを使用して、半結合がどのように機能するかを見てみましょう。半結合は、2つ目のテーブルに一致する記録がある場合、1つ目のテーブルから記録を返します。
id |
name |
deptno |
|---|---|---|
103 |
Paul |
3 |
101 |
John |
1 |
102 |
Lisa |
2 |
Snowflake¶
ここでは、「employee」と「department」の2つのサンプルテーブルを使用して、内部結合の仕組みを説明します。内部結合は、指定された列に一致する値がある両方のテーブルの記録を結合します。
id |
name |
deptno |
deptname |
|---|---|---|---|
103 |
Paul |
3 |
エンジニアリング |
101 |
John |
1 |
マーケティング |
102 |
Lisa |
2 |
販売 |
employeeテーブルとdepartmentテーブルを使用して左結合を示します。
id |
name |
deptno |
deptname |
|---|---|---|---|
105 |
Chloe |
5 |
null |
103 |
Paul |
3 |
エンジニアリング |
101 |
John |
1 |
マーケティング |
102 |
Lisa |
2 |
販売 |
104 |
Evan |
4 |
null |
106 |
Amy |
6 |
null |
employeeテーブルとdepartmentテーブルを使用して、右結合がどのように機能するかを見てみましょう。
id |
name |
deptno |
deptname |
|---|---|---|---|
103 |
Paul |
3 |
エンジニアリング |
102 |
Lisa |
2 |
販売 |
101 |
John |
1 |
マーケティング |
employeeテーブルとdepartmentテーブルを使用して、完全結合がどのように機能するかを見てみましょう。完全結合は、どちらかのテーブルの一致しない行を含め、両方のテーブルのすべての記録を結合します。
id |
name |
deptno |
deptname |
|---|---|---|---|
105 |
Chloe |
5 |
null |
103 |
Paul |
3 |
エンジニアリング |
101 |
John |
1 |
マーケティング |
102 |
Lisa |
2 |
販売 |
104 |
Evan |
4 |
null |
106 |
Amy |
6 |
null |
employeeテーブルとdepartmentテーブルの間に交差結合を作成し、各従業員がどの部門とペアになるかを示します。この例では、両方のテーブルの行の可能なすべての組み合わせを結合して、交差結合がどのように機能するかを示しています。
id |
name |
deptno |
deptname |
|---|---|---|---|
105 |
Chloe |
5 |
エンジニアリング |
105 |
Chloe |
5 |
販売 |
105 |
Chloe |
5 |
マーケティング |
103 |
Paul |
3 |
エンジニアリング |
103 |
Paul |
3 |
販売 |
103 |
Paul |
3 |
マーケティング |
101 |
John |
1 |
エンジニアリング |
101 |
John |
1 |
販売 |
101 |
John |
1 |
マーケティング |
102 |
Lisa |
2 |
エンジニアリング |
102 |
Lisa |
2 |
販売 |
102 |
Lisa |
2 |
マーケティング |
104 |
Evan |
4 |
エンジニアリング |
104 |
Evan |
4 |
販売 |
104 |
Evan |
4 |
マーケティング |
106 |
Amy |
6 |
エンジニアリング |
106 |
Amy |
6 |
販売 |
106 |
Amy |
6 |
マーケティング |
employeeテーブルとdepartmentテーブルを使用して、半結合がどのように機能するかを見てみましょう。半結合は、2つ目のテーブルに一致する記録がある場合、1つ目のテーブルから記録を返します。
id |
name |
deptno |
|---|---|---|
103 |
Paul |
3 |
101 |
John |
1 |
102 |
Lisa |
2 |
既知の問題¶
問題は見つかりませんでした