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_id | lecturer_id |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
lecturers
| lecturer_id | name |
|---|---|
| 1 | Jhonas |
| 2 | Malidos |
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_id | lecturer_name |
|---|---|
| 1 | Jhonas |
| 2 | Jhonas |
| 3 | Malidos |
Option 1:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses, lecturers
WHERE courses.lecturer_id = lecturers.lecturer_idHier 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_idAnstelle von WHERE verwenden wir JOIN table ON condition
Diese Art von Join wird auch als Inner Join bezeichnet.
Aufgabe
EinfachVerfü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 gradeDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columnsÜbe selbstständig: SQL-Playground