Snowpark Migration Accelerator: Join¶
描述¶
Merges rows from two table references (https://docs.databricks.com/en/sql/language-manual/sql-ref-syntax-qry-select-table-reference.html) using specified join conditions. For more details, see the Databricks SQL Language Reference JOIN (https://docs.databricks.com/en/sql/language-manual/sql-ref-syntax-qry-select-join.html).
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¶
我们将以两个表(“员工表”和“部门表”)为例,演示内部联接的工作原理。内部联接合并了两个表中指定列之间存在匹配项的行。
id |
name |
deptno |
deptname |
|---|---|---|---|
103 |
Paul |
3 |
Engineering |
101 |
John |
1 |
Marketing |
102 |
Lisa |
2 |
Sales |
我们将以员工表和部门表为例,演示左联接的工作原理。此示例将帮助您了解如何合并两个表中的数据,同时保留左侧(第一个)表中的所有记录。
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 |
我们将以员工表和部门表为例,演示 RIGHT JOIN 在 SQL 中的运作方式。
id |
name |
deptno |
deptname |
|---|---|---|---|
103 |
Paul |
3 |
Engineering |
102 |
Lisa |
2 |
Sales |
101 |
John |
1 |
Marketing |
我们将以员工表和部门表为例,演示完全联接的工作原理。完全联接可合并两个表中的所有记录,包括任一表中不匹配的行。
id |
name |
deptno |
deptname |
|---|---|---|---|
101 |
John |
1 |
Marketing |
102 |
Lisa |
2 |
Sales |
103 |
Paul |
3 |
Engineering |
104 |
Evan |
4 |
null |
105 |
Chloe |
5 |
null |
106 |
Amy |
6 |
null |
在员工表和部门表之间创建交叉联接,以展示如何将一个表中的每一行与另一个表中的每一行合并。
id |
name |
deptno |
deptname |
|---|---|---|---|
105 |
Chloe |
5 |
Engineering |
105 |
Chloe |
5 |
Sales |
105 |
Chloe |
5 |
Marketing |
103 |
Paul |
3 |
Engineering |
103 |
Paul |
3 |
Sales |
103 |
Paul |
3 |
Marketing |
101 |
John |
1 |
Engineering |
101 |
John |
1 |
Sales |
101 |
John |
1 |
Marketing |
102 |
Lisa |
2 |
Engineering |
102 |
Lisa |
2 |
Sales |
102 |
Lisa |
2 |
Marketing |
104 |
Evan |
4 |
Engineering |
104 |
Evan |
4 |
Sales |
104 |
Evan |
4 |
Marketing |
106 |
Amy |
6 |
Engineering |
106 |
Amy |
6 |
Sales |
106 |
Amy |
6 |
Marketing |
我们将以员工表和部门表为例,演示半联接的工作原理。半联接返回在第二个表中有匹配记录的第一个表中的记录。
id |
name |
deptno |
|---|---|---|
103 |
Paul |
3 |
101 |
John |
1 |
102 |
Lisa |
2 |
Snowflake¶
我们将以两个表(“员工表”和“部门表”)为例,演示内部联接的工作原理。内部联接可合并两个表中指定列中存在匹配值的记录。
id |
name |
deptno |
deptname |
|---|---|---|---|
103 |
Paul |
3 |
Engineering |
101 |
John |
1 |
Marketing |
102 |
Lisa |
2 |
Sales |
使用员工表和部门表来演示左联接。
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 |
我们将以员工表和部门表为例,演示右联接的工作原理。
id |
name |
deptno |
deptname |
|---|---|---|---|
103 |
Paul |
3 |
Engineering |
102 |
Lisa |
2 |
Sales |
101 |
John |
1 |
Marketing |
我们将以员工表和部门表为例,演示完全联接的工作原理。完全联接可合并两个表中的所有记录,包括任一表中不匹配的行。
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 |
在员工表和部门表之间创建交叉连接,以展示如何将每位员工与每个部门配对。此示例通过合并两个表中所有可能的行组合来演示交叉联接的工作原理。
id |
name |
deptno |
deptname |
|---|---|---|---|
105 |
Chloe |
5 |
Engineering |
105 |
Chloe |
5 |
Sales |
105 |
Chloe |
5 |
Marketing |
103 |
Paul |
3 |
Engineering |
103 |
Paul |
3 |
Sales |
103 |
Paul |
3 |
Marketing |
101 |
John |
1 |
Engineering |
101 |
John |
1 |
Sales |
101 |
John |
1 |
Marketing |
102 |
Lisa |
2 |
Engineering |
102 |
Lisa |
2 |
Sales |
102 |
Lisa |
2 |
Marketing |
104 |
Evan |
4 |
Engineering |
104 |
Evan |
4 |
Sales |
104 |
Evan |
4 |
Marketing |
106 |
Amy |
6 |
Engineering |
106 |
Amy |
6 |
Sales |
106 |
Amy |
6 |
Marketing |
我们将以员工表和部门表为例,演示半联接的工作原理。半联接返回在第二个表中有匹配记录的第一个表中的记录。
id |
name |
deptno |
|---|---|---|
103 |
Paul |
3 |
101 |
John |
1 |
102 |
Lisa |
2 |
已知问题¶
未发现任何问题