Menu
CoddyTech

Grundlegender Join Teil 1

Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 43 von 72.

Bisher haben wir Probleme mit einer einzelnen Tabelle behandelt. Jetzt sehen wir uns an, wie man mit mehreren Tabellen umgeht.

Nehmen wir an, wir haben die folgenden Tabellen:

Kurse

course_idlecturer_id
11
21
32

Dozenten

lecturer_idName
1Jhonas
2Malidos

Die Aufgabe besteht darin, für jeden Kurs den Namen des zugehörigen Dozenten anzuzeigen.

Es gibt zwei Möglichkeiten, dies zu erreichen. Bei jeder Option ordnen wir jede Zeile einer Tabelle einer Zeile der anderen Tabelle zu. Wir prüfen eine Bedingung, die erfüllt sein muss, und wenn die Bedingung erfüllt ist, fassen wir die beiden Zeilen zu einer zusammen. Das gewünschte Ergebnis für beide Optionen:

course_idlecturer_name
1Jhonas
2Jhonas
3Malidos

Option 1:

SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses, lecturers
WHERE courses.lecturer_id = lecturers.lecturer_id

Hier geben wir zwei Tabellen im Schlüsselwort FROM an und fordern in der WHERE-Klausel, dass die lecturer_id beider Datensätze gleich sein muss. In der SELECT-Klausel schreiben wir nun table.column, damit die Datenbank weiß, aus welcher Tabelle sie die Spalte abrufen soll.

Option 2:

SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses
JOIN lecturers ON courses.lecturer_id = lecturers.lecturer_id

Statt WHERE verwenden wir JOIN table ON condition

Beide Optionen liefern dasselbe Ergebnis und werden als Inner Join bezeichnet: Nur Zeilenpaare, die die Bedingung erfüllen, werden zusammengeführt.

challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • grades: course_id, student_id, grade
  • students: id, name

Erstelle eine Abfrage, die student_name, course_id, student_id und grade in einer Tabelle abruft. Sortiere das Ergebnis nach grade in aufsteigender Reihenfolge.

Probier es selbst

-- Gib die Spalten aus, nach denen die Aufgabe fragt, und verwende dabei den geforderten Alias
SELECT ____
FROM students, grades
-- Behalte nur die Zeilenpaare, bei denen beide Tabellen dieselbe Person beschreiben
WHERE ____
ORDER BY grade
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: SQL-Playground