Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Zwei Tabellen Verknüpfen | Tabellen Verbinden
Fortgeschrittene SQL
course content

Kursinhalt

Fortgeschrittene SQL

Fortgeschrittene SQL

1. Gruppierung
2. Verschachtelte Unterabfragen
3. Tabellen Verbinden
4. DDL und DML in SQL

book
Zwei Tabellen Verknüpfen

Wir haben die Aufmerksamkeit eines Unternehmens erlangt, das einen kleinen Online-Shop besitzt. Es gibt 2 Tabellen, die miteinander in Beziehung stehen. Die erste Tabelle enthält Informationen zu den im Online-Shop verkauften Produkten.

So sieht die product Tabelle aus:

Die zweite Tabelle enthält Produktkategorien auf der Website, zusammen mit einer kurzen Beschreibung für jede Kategorie.

So sieht die category Tabelle aus:

Unsere erste Aufgabe besteht darin, diese beiden Tabellen zu verbinden, um herauszufinden, wie viele Produkte sich in jeder Kategorie befinden. Wir werden eine JOIN-Anweisung verwenden, um dies zu erreichen.

Bevor wir uns in die Aufgabe vertiefen, wollen wir verstehen, was eine JOIN-Anweisung ist und wie sie funktioniert.

Um zwei Tabellen zu verbinden, müssen sie eine gemeinsame Spalte besitzen. Sehen wir uns an, wie JOIN anhand der Tabellen employees und department funktioniert. Ihre gemeinsame Spalte ist employees.department und departments.name.

Hinweis

Beim Schreiben von Spalten aus diesen Tabellen beginnen Sie mit dem Tabellennamen, fügen einen Punkt hinzu und schreiben dann den Spaltennamen. Dies hilft, den Code klar zu halten, insbesondere wenn Tabellen Spalten mit identischem Namen besitzen. Es teilt SQL genau mit, welche Tabelle und Spalte gemeint ist.

Hier ist die Aufgabe, das Gesamtgehalt der Mitarbeiter in jedem Abteilungstyp (tech/non-tech) abzurufen.

Die Abfrage, um diese Aufgabe zu erfüllen, sieht folgendermaßen aus:

1234
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
copy

Lassen Sie uns aufschlüsseln, wie wir JOIN in unserer Abfrage verwendet haben:

  1. Im SELECT-Teil listen wir die Spalten auf, die wir aus beiden Tabellen benötigen, wobei wir zur Klarheit den Tabellennamen einschließen;
  2. Im JOIN-Teil geben wir die Tabelle, mit der verbunden werden soll und die gemeinsame Spalte, die die beiden verknüpft, an. Hier sind es employees.department und department.name;
  3. Anschließend gruppieren wir die Daten nach type, um mit der SUM()-Funktion das Gesamtgehalt zu berechnen.

Wenn dies komplex erscheint, hier ist eine einfache Syntax zur Verwendung von JOIN:

Hinweis

Im Gegensatz zur UNION-Klausel erlaubt uns die JOIN-Anweisung, ganze Tabellen zu verbinden, nicht nur die Spalten, die sie gemeinsam haben. Außerdem ist bei JOIN keine Verwendung von Unterabfragen wie bei UNION erforderlich.

Aufgabe

Swipe to start coding

Sie müssen die beiden Tabellen: category und product verbinden. Die gemeinsamen Spalten dieser beiden Tabellen sind product.category_id und category.id.

Ihre Aufgabe ist es, die Gesamtanzahl der Produkte in jeder Kategorie zu ermitteln. Dazu müssen Sie die Summe der Spalte product.amount berechnen.

Verwenden Sie das Alias total_amount für diese Spalte. Am Ende Ihrer Abfrage sortieren Sie das Ergebnis aufsteigend nach der Spalte total_amount.

In der Antwort sollten Sie 2 Spalten haben: category.name und total.amount.

Kurze Anweisungen

  • Rufen Sie die Spalte category.name und die Summe der Spalte product.amount aus der Tabelle product ab.
  • Weisen Sie der zweiten Spalte das Alias total_amount zu.
  • Verbinden Sie die Tabelle category mittels einer JOIN-Anweisung.
  • Verbinden Sie die Tabellen über die gemeinsame Spalte product.category_id = category_id.
  • Gruppieren Sie die Ergebnisse nach category.name.
  • Sortieren Sie die Ergebnisse nach total_amount.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 1
toggle bottom row

book
Zwei Tabellen Verknüpfen

Wir haben die Aufmerksamkeit eines Unternehmens erlangt, das einen kleinen Online-Shop besitzt. Es gibt 2 Tabellen, die miteinander in Beziehung stehen. Die erste Tabelle enthält Informationen zu den im Online-Shop verkauften Produkten.

So sieht die product Tabelle aus:

Die zweite Tabelle enthält Produktkategorien auf der Website, zusammen mit einer kurzen Beschreibung für jede Kategorie.

So sieht die category Tabelle aus:

Unsere erste Aufgabe besteht darin, diese beiden Tabellen zu verbinden, um herauszufinden, wie viele Produkte sich in jeder Kategorie befinden. Wir werden eine JOIN-Anweisung verwenden, um dies zu erreichen.

Bevor wir uns in die Aufgabe vertiefen, wollen wir verstehen, was eine JOIN-Anweisung ist und wie sie funktioniert.

Um zwei Tabellen zu verbinden, müssen sie eine gemeinsame Spalte besitzen. Sehen wir uns an, wie JOIN anhand der Tabellen employees und department funktioniert. Ihre gemeinsame Spalte ist employees.department und departments.name.

Hinweis

Beim Schreiben von Spalten aus diesen Tabellen beginnen Sie mit dem Tabellennamen, fügen einen Punkt hinzu und schreiben dann den Spaltennamen. Dies hilft, den Code klar zu halten, insbesondere wenn Tabellen Spalten mit identischem Namen besitzen. Es teilt SQL genau mit, welche Tabelle und Spalte gemeint ist.

Hier ist die Aufgabe, das Gesamtgehalt der Mitarbeiter in jedem Abteilungstyp (tech/non-tech) abzurufen.

Die Abfrage, um diese Aufgabe zu erfüllen, sieht folgendermaßen aus:

1234
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
copy

Lassen Sie uns aufschlüsseln, wie wir JOIN in unserer Abfrage verwendet haben:

  1. Im SELECT-Teil listen wir die Spalten auf, die wir aus beiden Tabellen benötigen, wobei wir zur Klarheit den Tabellennamen einschließen;
  2. Im JOIN-Teil geben wir die Tabelle, mit der verbunden werden soll und die gemeinsame Spalte, die die beiden verknüpft, an. Hier sind es employees.department und department.name;
  3. Anschließend gruppieren wir die Daten nach type, um mit der SUM()-Funktion das Gesamtgehalt zu berechnen.

Wenn dies komplex erscheint, hier ist eine einfache Syntax zur Verwendung von JOIN:

Hinweis

Im Gegensatz zur UNION-Klausel erlaubt uns die JOIN-Anweisung, ganze Tabellen zu verbinden, nicht nur die Spalten, die sie gemeinsam haben. Außerdem ist bei JOIN keine Verwendung von Unterabfragen wie bei UNION erforderlich.

Aufgabe

Swipe to start coding

Sie müssen die beiden Tabellen: category und product verbinden. Die gemeinsamen Spalten dieser beiden Tabellen sind product.category_id und category.id.

Ihre Aufgabe ist es, die Gesamtanzahl der Produkte in jeder Kategorie zu ermitteln. Dazu müssen Sie die Summe der Spalte product.amount berechnen.

Verwenden Sie das Alias total_amount für diese Spalte. Am Ende Ihrer Abfrage sortieren Sie das Ergebnis aufsteigend nach der Spalte total_amount.

In der Antwort sollten Sie 2 Spalten haben: category.name und total.amount.

Kurze Anweisungen

  • Rufen Sie die Spalte category.name und die Summe der Spalte product.amount aus der Tabelle product ab.
  • Weisen Sie der zweiten Spalte das Alias total_amount zu.
  • Verbinden Sie die Tabelle category mittels einer JOIN-Anweisung.
  • Verbinden Sie die Tabellen über die gemeinsame Spalte product.category_id = category_id.
  • Gruppieren Sie die Ergebnisse nach category.name.
  • Sortieren Sie die Ergebnisse nach total_amount.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 1
Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
We're sorry to hear that something went wrong. What happened?
some-alt