Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL Grundkurs 2: Aufgaben und Lösungen

Beispiel 23: JOIN mit mehr als zwei Tabellen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wir möchten die Interessen der Kunden aus Deutschland auflisten, die keinen akademischen Grad haben. Der Name der Kunden soll um die Anrede aus der Tabelle wawi.anreden ergänzt werden.

Transkript

Auch ein JOIN mit mehr als zwei Tabellen ist keine Hexerei. Das wollen wir mit dem nächsten Beispiel üben. Für das nächste Beispiel benötigen wir insgesamt vier Tabellen. Was wir möchten ist, wie Sie hier unten im Ergebnis sehen, eine Liste von Kunden mit ihren Interessen. Dabei möchten wir zusätzlich zum Nach- und Vornamen der Kunden, au die Anrede anzeigen. Das Interesse soll nicht in Form des Kürzels, sondern wirklich in Form der Langbezeichnung, die wir aus der Tabelle "INTERESSEN" entnehmen können, angezeigt werden. Um das zu erreichen brauchen wir vier Tabellen, die "ANREDE", die Spalte "TEXT" aus der Tabelle "ANREDEN", "NACHNAME" und "VORNAME" stammen aus der Tabelle "KUNDEN", und die Bezeichnung des Interesses, die Spalte "TEXT" aus der Tabelle "INTERESSEN". Die Tabelle "KUNDENINTERESSEN" brauchen wir eigentlich nicht in der "SELECT"-Klausel, es ist keine Spalte die aus dieser Tabelle angezeigt wird, aber sie übernimmt die Brückenkopf-Funktion, und ist also das Bindeglied zwischen "KUNDEN" und "INTERESSEN". Deshalb können wir sie hier in diesem Beispiel nicht weglassen. Setzen Sie also den JOIN mit diesen vier Tabellen um, und sortieren Sie das Ergebnis noch nach dem Nachnamen. Und innerhalb des Nachnamens noch aufsteigend nach der Bezeichnung des Interesses. Pausieren Sie nun das Video und lösen Sie die Aufgabe Wenn Sie damit fertig sind, fahren Sie mit dem Video fort und sehen Sie sich meine Musterlösung an. Das Erstellen der Lösung hat Sie sicher nicht vor große Probleme gestellt. Betrachten wir uns nun das Ergebnis gemeinsam. Das ist jetzt hier die Musterlösung, die ich Ihnen präsentieren möchte. Ich führe die Anweisung noch einmal hier aus, damit wir wirklich sehen, dass diese zu diesem Ergebnis führt. Es kann bei Ihnen natürlich anders aussehen, wenn Sie eine andere Reihenfolge hier im JOIN verwendet haben. Ich habe mit der Tabelle "KUNDEN" begonnen auch deshalb, weil ich ja in der Kundentabelle hier am meisten gefiltert habe. Nämlich einerseits auf die Kunden aus Deutschland und andererseits auf die Kunden, die noch keinen akademischen Grad haben so wie wir es hier in der Angabe definiert haben. Als erstes habe ich die Tabelle "anrede" dazu gejoint. Ich kann ja als zweite Tabelle jede verwenden, wahlweise die eine direkte Verbindung zur ersten hat. In unserem Fall wären das die "anreden" oder die "kundeninteressen". Beide könnte ich hier direkt nach den "kunden" verwenden. Die "interessen" hingegen könnte ich als zweite Tabelle noch nicht verwenden weil sie keine direkte Verbindung zu den "kunden" aufweist. Die Anreden habe ich über die Spalte "geschlecht", das ist der Fremdschlüssel in der Spalte "kunden", zur "anrnr", zur Anredenummer in der Tabelle "anrede" vollzogen. Die Kunden habe ich gejoint über die Kundennummer. Hier sehen wir, haben wir zwei Spalten, die in beiden Tabellen ident heißen, deshalb ist es ganz wichtig, dass wir hier als Präfix die Tabellennamen, bzw. die Tabellen-Aliasnamen voransetzen, sonst würden wir einen Fehler bekommen. Und nach den "kundeninteressen" als vierte Tabelle noch die "interessen", die zu den "kundeninteressen" dazu gejoint werden, diesmal über die "intcode"-Spalte. Auch hier der Fremdschlüssel in der Tabelle "kundeninteressen". weist den gleichen Spaltennamen auf, wie die Primärschlüsselspalte in der Tabelle "interessen". Deshalb auch hier ganz wichtig die Präfixe. Aber generell haben wir uns ja festgelegt, wollen wir bei jeder Spalte über einen Präfix angeben, aus welcher Tabelle sie stammt, sobald wir mehr als eine Tabelle verwenden. Sortiert habe ich das Ganze nach "nachname" und "interesse". "interesse" trägt kein Präfix, warum? Weil, der Editor markiert das hier auch mit, schön wenn ich es hier unten markiere, weil wir hier ja über den Aliasnamen bereits im Ausdruck den Präfix verwendet haben. Würde ich jetzt hier "i.interesse" schreiben, würden wir sogar einen Fehler bekommen, denn dann würden wir ja verweisen auf den expliziten Spaltennamen "interesse", den es gar nicht gibt. Also bei Aliasnamen darf natürlich kein Präfix stehen. Wenn Sie dasselbe Beispiel unter MySQL oder dem Microsoft SQL Server ausführen möchten, können Sie das eins zu eins wie hier verwenden, es gibt keinen Unterschied. Achten Sie darauf, wenn Sie mehrere Tabellen miteinander joinen, dass Sie eine Tabelle als Ausgangspunkt auswählen, und danach immer eine weitere Tabelle dazu hängen. Als einzige Bedingung müssen Sie sich lediglich daran halten, dass die jeweilige Gegentabelle, also das Gegenstück für den JOIN, früher in der Anweisung vorkommt. Sie können also z. B. nicht die "interessen" zu den "kunden" und "anreden" joinen, solange die Tabelle "kundeninteressen" in diesem Beispiel noch nicht verwendet worden ist.

SQL Grundkurs 2: Aufgaben und Lösungen

Vertiefen Sie Ihre SQL-Kenntnisse. In diesem Workshop erhalten Sie zahlreiche Beispielaufgaben, die Sie selbst lösen können. Anschließend zeigt Ihnen der Trainer die Lösung.

7 Std. 41 min (61 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieses Training setzt SQL-Kenntnisse voraus, wie sie beispielsweise in „SQL lernen und anwenden“ vermittelt werden.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!