Kursinhalt
Fortgeschrittene SQL
Fortgeschrittene SQL
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:
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
Lassen Sie uns aufschlüsseln, wie wir JOIN
in unserer Abfrage verwendet haben:
- Im
SELECT
-Teil listen wir die Spalten auf, die wir aus beiden Tabellen benötigen, wobei wir zur Klarheit den Tabellennamen einschließen; - Im
JOIN
-Teil geben wir die Tabelle, mit der verbunden werden soll und die gemeinsame Spalte, die die beiden verknüpft, an. Hier sind esemployees.department
unddepartment.name
; - Anschließend gruppieren wir die Daten nach
type
, um mit derSUM()
-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 dieJOIN
-Anweisung, ganze Tabellen zu verbinden, nicht nur die Spalten, die sie gemeinsam haben. Außerdem ist beiJOIN
keine Verwendung von Unterabfragen wie beiUNION
erforderlich.
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 Spalteproduct.amount
aus der Tabelleproduct
ab. - Weisen Sie der zweiten Spalte das Alias
total_amount
zu. - Verbinden Sie die Tabelle
category
mittels einerJOIN
-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
Danke für Ihr Feedback!
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:
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
Lassen Sie uns aufschlüsseln, wie wir JOIN
in unserer Abfrage verwendet haben:
- Im
SELECT
-Teil listen wir die Spalten auf, die wir aus beiden Tabellen benötigen, wobei wir zur Klarheit den Tabellennamen einschließen; - Im
JOIN
-Teil geben wir die Tabelle, mit der verbunden werden soll und die gemeinsame Spalte, die die beiden verknüpft, an. Hier sind esemployees.department
unddepartment.name
; - Anschließend gruppieren wir die Daten nach
type
, um mit derSUM()
-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 dieJOIN
-Anweisung, ganze Tabellen zu verbinden, nicht nur die Spalten, die sie gemeinsam haben. Außerdem ist beiJOIN
keine Verwendung von Unterabfragen wie beiUNION
erforderlich.
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 Spalteproduct.amount
aus der Tabelleproduct
ab. - Weisen Sie der zweiten Spalte das Alias
total_amount
zu. - Verbinden Sie die Tabelle
category
mittels einerJOIN
-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
Danke für Ihr Feedback!