Menu
Coddy logo textTech

Basic Join Part 1

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

Bisher haben wir Probleme mit einer einzelnen Tabelle behandelt. Jetzt werden wir untersuchen, wie man mit mehreren Tabellen umgeht.

Nehmen wir an, wir haben die folgenden Tabellen:

courses

course_idlecturer_id
11
21
32

lecturers

lecturer_idname
1Jhonas
2Malidos

Die Aufgabe besteht darin, für jeden Kurs den entsprechenden `lecturer_name` anzuzeigen.

Es gibt zwei Möglichkeiten, dies zu erreichen. Für jede Option vergleichen wir jede Zeile in einer Tabelle mit der anderen. Wir prüfen eine Bedingung, die erfüllt sein muss, und wenn die Bedingung erfüllt ist, führen 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 schreiben wir zwei Tabellen in das FROM-Schlüsselwort, und in der WHERE-Klausel fordern wir, 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 die Spalte abgerufen werden soll.

Option 2:

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

Anstelle von WHERE verwenden wir JOIN table ON condition

Diese Art von Join wird auch als Inner Join bezeichnet.

challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • <strong>grades</strong>: <strong>course_id</strong>, <strong>student_id</strong>, <strong>grade</strong>
  • <strong>students</strong>: <strong>id</strong>, <strong>name</strong>

Erstelle eine Abfrage, die student_name, course_id, student_id und grade in einer Tabelle abfragt. Sortiere das Ergebnis aufsteigend nach grade.

Probier es selbst

-- Liste die Spalten auf, die die Aufgabe verlangt, und verwende den Alias, den sie verlangt
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