Snowpark Migration Accelerator: Join¶
Descrição¶
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)
Sintaxe¶
Amostra de padrões da origem¶
Dados de configuração¶
Databricks¶
Snowflake¶
Código do padrão¶
Databricks¶
Usaremos duas tabelas de amostra - «employee» e «department» - para mostrar como funciona uma junção interna. Uma junção interna combina linhas de ambas as tabelas em que há uma correspondência entre as colunas especificadas.
id |
name |
deptno |
deptname |
|---|---|---|---|
103 |
Paul |
3 |
Engenharia |
101 |
John |
1 |
Marketing |
102 |
Lisa |
2 |
Vendas |
Usaremos as tabelas employee e department para mostrar como funciona uma junção esquerda. Este exemplo ajudará a entender como combinar dados de duas tabelas, mantendo todos os registros da tabela da esquerda (primeira).
id |
name |
deptno |
deptname |
|---|---|---|---|
105 |
Chloe |
5 |
nulo |
103 |
Paul |
3 |
Engenharia |
101 |
John |
1 |
Marketing |
102 |
Lisa |
2 |
Vendas |
104 |
Evan |
4 |
nulo |
106 |
Amy |
6 |
nulo |
Vamos usar as tabelas employee e department para mostrar como RIGHT JOIN funciona em SQL.
id |
name |
deptno |
deptname |
|---|---|---|---|
103 |
Paul |
3 |
Engenharia |
102 |
Lisa |
2 |
Vendas |
101 |
John |
1 |
Marketing |
Vamos usar as tabelas employee e department para mostrar como funciona uma junção completa. Uma junção completa combina todos os registros de ambas as tabelas, inclusive as linhas não correspondentes de qualquer uma delas.
id |
name |
deptno |
deptname |
|---|---|---|---|
101 |
John |
1 |
Marketing |
102 |
Lisa |
2 |
Vendas |
103 |
Paul |
3 |
Engenharia |
104 |
Evan |
4 |
nulo |
105 |
Chloe |
5 |
nulo |
106 |
Amy |
6 |
nulo |
Crie uma junção cruzada entre as tabelas employee e department para mostrar como combinar cada linha de uma tabela com cada linha de outra tabela.
id |
name |
deptno |
deptname |
|---|---|---|---|
105 |
Chloe |
5 |
Engenharia |
105 |
Chloe |
5 |
Vendas |
105 |
Chloe |
5 |
Marketing |
103 |
Paul |
3 |
Engenharia |
103 |
Paul |
3 |
Vendas |
103 |
Paul |
3 |
Marketing |
101 |
John |
1 |
Engenharia |
101 |
John |
1 |
Vendas |
101 |
John |
1 |
Marketing |
102 |
Lisa |
2 |
Engenharia |
102 |
Lisa |
2 |
Vendas |
102 |
Lisa |
2 |
Marketing |
104 |
Evan |
4 |
Engenharia |
104 |
Evan |
4 |
Vendas |
104 |
Evan |
4 |
Marketing |
106 |
Amy |
6 |
Engenharia |
106 |
Amy |
6 |
Vendas |
106 |
Amy |
6 |
Marketing |
Vamos usar as tabelas employee e department para mostrar como funciona uma semijunção. Uma semijunção retorna registros da primeira tabela quando há um registro correspondente na segunda tabela.
id |
name |
deptno |
|---|---|---|
103 |
Paul |
3 |
101 |
John |
1 |
102 |
Lisa |
2 |
Snowflake¶
Usaremos duas tabelas de amostra - «employee» e «department» - para mostrar como funciona uma junção interna. Uma junção interna combina registros de ambas as tabelas em que há um valor correspondente nas colunas especificadas.
id |
name |
deptno |
deptname |
|---|---|---|---|
103 |
Paul |
3 |
Engenharia |
101 |
John |
1 |
Marketing |
102 |
Lisa |
2 |
Vendas |
Use as tabelas employee e department para demonstrar a junção esquerda.
id |
name |
deptno |
deptname |
|---|---|---|---|
105 |
Chloe |
5 |
nulo |
103 |
Paul |
3 |
Engenharia |
101 |
John |
1 |
Marketing |
102 |
Lisa |
2 |
Vendas |
104 |
Evan |
4 |
nulo |
106 |
Amy |
6 |
nulo |
Vamos usar as tabelas employee e department para mostrar como funciona uma junção direita.
id |
name |
deptno |
deptname |
|---|---|---|---|
103 |
Paul |
3 |
Engenharia |
102 |
Lisa |
2 |
Vendas |
101 |
John |
1 |
Marketing |
Vamos usar as tabelas employee e department para mostrar como funciona uma junção completa. Uma junção completa combina todos os registros de ambas as tabelas, inclusive as linhas não correspondentes de qualquer uma delas.
id |
name |
deptno |
deptname |
|---|---|---|---|
105 |
Chloe |
5 |
nulo |
103 |
Paul |
3 |
Engenharia |
101 |
John |
1 |
Marketing |
102 |
Lisa |
2 |
Vendas |
104 |
Evan |
4 |
nulo |
106 |
Amy |
6 |
nulo |
Crie uma junção cruzada entre as tabelas employee e department para mostrar como cada funcionário pode ser associado a cada departamento. Este exemplo demonstra como as junções cruzadas funcionam, com todas as combinações possíveis de linhas de ambas as tabelas.
id |
name |
deptno |
deptname |
|---|---|---|---|
105 |
Chloe |
5 |
Engenharia |
105 |
Chloe |
5 |
Vendas |
105 |
Chloe |
5 |
Marketing |
103 |
Paul |
3 |
Engenharia |
103 |
Paul |
3 |
Vendas |
103 |
Paul |
3 |
Marketing |
101 |
John |
1 |
Engenharia |
101 |
John |
1 |
Vendas |
101 |
John |
1 |
Marketing |
102 |
Lisa |
2 |
Engenharia |
102 |
Lisa |
2 |
Vendas |
102 |
Lisa |
2 |
Marketing |
104 |
Evan |
4 |
Engenharia |
104 |
Evan |
4 |
Vendas |
104 |
Evan |
4 |
Marketing |
106 |
Amy |
6 |
Engenharia |
106 |
Amy |
6 |
Vendas |
106 |
Amy |
6 |
Marketing |
Vamos usar as tabelas employee e department para mostrar como funciona uma semijunção. Uma semijunção retorna registros da primeira tabela quando há um registro correspondente na segunda tabela.
id |
name |
deptno |
|---|---|---|
103 |
Paul |
3 |
101 |
John |
1 |
102 |
Lisa |
2 |
Problemas conhecidos¶
Não foram encontrados problemas