Snowpark Migration Accelerator: Verknüpfung (Join)

Beschreibung

Führt Zeilen aus zwei Tabellenreferenzen unter Verwendung der angegebenen Verknüpfungsbedingungen zusammen Weitere Einzelheiten finden Sie in deren Databricks SQL-Sprachreferenz JOIN.

Eine JOIN kombiniert Daten aus zwei Quellen (z. B. Tabellen oder Ansichten) zu einem einzigen Resultset. Jede Zeile des Ergebnisses enthält Spalten aus beiden Quellen, die auf einer bestimmten Bedingung basieren. Eine ausführliche Erklärung von Joins (Verknüpfungen) finden Sie unterArbeiten mit Verknüpfungen (Joins) . (Snowflake SQL-Sprachreferenz JOIN)

Syntax

left_table_reference { [ join_type ] JOIN right_table_reference join_criteria |
           NATURAL join_type JOIN right_table_reference |
           CROSS JOIN right_table_reference }

join_type
  { [ INNER ] |
    LEFT [ OUTER ] |
    [ LEFT ] SEMI |
    RIGHT [ OUTER ] |
    FULL [ OUTER ] |
    [ LEFT ] ANTI |
    CROSS }

join_criteria
  { ON boolean_expression |
    USING ( column_name [, ...] ) }
Copy
SELECT ...
FROM <object_ref1> [
                     {
                       INNER
                       | { LEFT | RIGHT | FULL } [ OUTER ]
                     }
                   ]
                   JOIN <object_ref2>
  [ ON <condition> ]
[ ... ]

SELECT *
FROM <object_ref1> [
                     {
                       INNER
                       | { LEFT | RIGHT | FULL } [ OUTER ]
                     }
                   ]
                   JOIN <object_ref2>
  [ USING( <column_list> ) ]
[ ... ]

SELECT ...
FROM <object_ref1> [
                     {
                       | NATURAL [ { LEFT | RIGHT | FULL } [ OUTER ] ]
                       | CROSS
                     }
                   ]
                   JOIN <object_ref2>
[ ... ]
Copy

Beispielhafte Quellcode-Muster

Datenkonfiguration

Databricks

-- Use employee and department tables to demonstrate different type of joins.
CREATE TEMP VIEW employee(id, name, deptno) AS
     VALUES(105, 'Chloe', 5),
           (103, 'Paul', 3),
           (101, 'John', 1),
           (102, 'Lisa', 2),
           (104, 'Evan', 4),
           (106, 'Amy', 6);

CREATE TEMP VIEW department(deptno, deptname) AS
    VALUES(3, 'Engineering'),
          (2, 'Sales'      ),
          (1, 'Marketing'  );
Copy

Snowflake

-- Use employee and department tables to demonstrate different type of joins.
CREATE TEMPORARY TABLE employee(id, name, deptno) AS
SELECT id, name, deptno
  FROM (VALUES (105, 'Chloe', 5),
           (103, 'Paul' , 3),
           (101, 'John' , 1),
           (102, 'Lisa' , 2),
           (104, 'Evan' , 4),
           (106, 'Amy'  , 6)) AS v1 (id, name, deptno);

CREATE TEMP VIEW department(deptno, deptname) AS
SELECT deptno, deptname
  FROM (VALUES(3, 'Engineering'),
          (2, 'Sales'      ),
          (1, 'Marketing'  )) AS v1 (deptno, deptname);
Copy

Muster-Code

Databricks

-- 1. 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;
 
-- 2. We will use the employee and department tables to show how a left join works. This example will help you understand how to combine data from two tables while keeping all records from the left (first) table.
SELECT id, name, employee.deptno, deptname
   FROM employee
   LEFT JOIN department ON employee.deptno = department.deptno;

-- 3. Demonstrate a RIGHT JOIN using employee and department tables. This query retrieves all departments and matching employees.
SELECT id, name, employee.deptno, deptname
    FROM employee
    RIGHT JOIN department ON employee.deptno = department.deptno;

-- 4. Demonstrate a FULL JOIN operation using the employee and department tables.
SELECT id, name, employee.deptno, deptname
    FROM employee
    FULL JOIN department ON employee.deptno = department.deptno;

-- 5. Demonstrate a cross join operation using the employee and department tables. This query returns all possible combinations of employees and departments.
SELECT id, name, employee.deptno, deptname
    FROM employee
    CROSS JOIN department;

-- 6. This example shows how to use a semi join between employee and department tables. A semi join returns records from the first table (employee) where there is a matching record in the second table (department).
```{code} sql
SELECT *
    FROM employee
    SEMI JOIN department ON employee.deptno = department.deptno;
Copy
  1. Wir werden zwei Beispieltabellen - „employee“ and „department“ - verwenden, um zu zeigen, wie eine innere Verknüpfung (Inner Join) funktioniert. Eine innere Verknüpfung (Inner Join) kombiniert Zeilen aus beiden Tabellen, wenn eine Übereinstimmung zwischen den angegebenen Spalten besteht.

id

name

deptno

deptname

103

Paul

3

Engineering

101

John

1

Marketing

102

Lisa

2

Sales


  1. Wir werden die Tabellen „employee“ und „department“ verwenden, um zu zeigen, wie eine linke Verknüpfung (Left Join) funktioniert. Dieses Beispiel verdeutlicht, wie Sie Daten aus zwei Tabellen kombinieren und dabei alle Datensätze aus der linken (ersten) Tabelle beibehalten können.

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


  1. Verwenden wir die Tabellen „employee” und „department ”, um zu zeigen, wie eine RIGHT JOIN in SQL funktioniert.

id

name

deptno

deptname

103

Paul

3

Engineering

102

Lisa

2

Sales

101

John

1

Marketing


  1. Lassen Sie uns anhand der Tabellen „employee” und „department ” zeigen, wie eine vollständige Verknüpfung (Full Join) funktioniert. Eine vollständige Verknüpfung (Full Join) kombiniert alle Datensätze aus beiden Tabellen, einschließlich nicht übereinstimmender Zeilen aus beiden Tabellen.

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


  1. Erstellen Sie eine Kreuzverknüpfung (Cross Join) zwischen den Tabellen „employee” und „department ”, um zu zeigen, wie jede Zeile aus einer Tabelle mit jeder Zeile aus einer anderen Tabelle kombiniert wird.

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


  1. Lassen Sie uns anhand der Tabellen „employee” und „department ” zeigen, wie eine Semi-Verknüpfung (Semi Join) funktioniert. Eine Semi-Verknüpfung (Semi Join) gibt Datensätze aus der ersten Tabelle zurück, in denen es einen übereinstimmenden Datensatz in der zweiten Tabelle gibt.

id

name

deptno

103

Paul

3

101

John

1

102

Lisa

2

Snowflake

-- 1. 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;
 
-- 2. 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;


-- 3. Use employee and department tables to demonstrate right join.
SELECT id, name, employee.deptno, deptname
    FROM employee
    RIGHT JOIN department ON employee.deptno = department.deptno;


-- 4. Use employee and department tables to demonstrate full join.
SELECT id, name, employee.deptno, deptname
    FROM employee
    FULL JOIN department ON employee.deptno = department.deptno;


-- 5. Use employee and department tables to demonstrate cross join.
SELECT id, name, employee.deptno, deptname
    FROM employee
    CROSS JOIN department;

-- 6. Use employee and department tables to demonstrate semi join.
SELECT e.*
    FROM employee e, department d
    WHERE e.deptno = d.deptno;
Copy
  1. Wir werden zwei Beispieltabellen - „employee“ and „department“ - verwenden, um zu zeigen, wie eine innere Verknüpfung (Inner Join) funktioniert. Ein innere Verknüpfung (Inner Join) kombiniert Datensätze aus beiden Tabellen, bei denen in den angegebenen Spalten ein übereinstimmender Wert vorhanden ist.

id

name

deptno

deptname

103

Paul

3

Engineering

101

John

1

Marketing

102

Lisa

2

Sales


  1. Verwenden Sie Tabellen „employee” und „department”, um linke Verknüpfung (Left Join) zu veranschaulichen.

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


  1. Verwenden wir die Tabellen „employee” und „department”, um zu zeigen, wie eine linke Verknüpfung (Left Join) funktioniert.

id

name

deptno

deptname

103

Paul

3

Engineering

102

Lisa

2

Sales

101

John

1

Marketing


  1. Lassen Sie uns anhand der Tabellen „employee” und „department ” zeigen, wie eine vollständige Verknüpfung (Full Join) funktioniert. Eine vollständige Verknüpfung (Full Join) kombiniert alle Datensätze aus beiden Tabellen, einschließlich nicht übereinstimmender Zeilen aus beiden Tabellen.

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


  1. Erstellen Sie eine Kreuzverknüpfung (Cross Join) zwischen den Tabellen „employee” und „department”, um zu zeigen, wie jeder Mitarbeiter jeder Abteilung zugeordnet werden kann. Dieses Beispiel veranschaulicht die Funktionsweise von Kreuzverknüpfung (Cross Join), indem alle möglichen Kombinationen von Zeilen aus beiden Tabellen kombiniert werden.

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


  1. Lassen Sie uns anhand der Tabellen „employee” und „department ” zeigen, wie eine Semi-Verknüpfung (Semi Join) funktioniert. Eine Semi-Verknüpfung (Semi Join) gibt Datensätze aus der ersten Tabelle zurück, in denen es einen übereinstimmenden Datensatz in der zweiten Tabelle gibt.

id

name

deptno

103

Paul

3

101

John

1

102

Lisa

2

Bekannte Probleme

Es wurden keine Probleme gefunden