24th Nov 2022 7 Leseminuten 4 einfache Wege, um endlich zu lernen, welcher JOIN in einer SQL-Abfrage zu verwenden ist Kateryna Koidan JOIN Inhaltsverzeichnis SQL JOIN-Typen: Ein kurzer Überblick INNER JOIN LEFT JOIN RECHTSVERBINDUNG FULL JOIN 4 Wege zum Lernen SQL-JOINs Sie wissen wahrscheinlich schon, dass Sie JOIN verwenden sollten, um Daten aus mehreren Tabellen zu kombinieren. Aber welche Art von JOIN? In diesem Artikel stelle ich Ihnen vier einfache Möglichkeiten vor, wie Sie endlich lernen können, welchen JOIN Sie in verschiedenen Szenarien verwenden sollten. Bevor wir uns mit den intelligenten Strategien zum Erlernen von SQL-JOINs beschäftigen, schlage ich vor, einen kurzen Überblick über die wichtigsten JOIN-Typen zu geben. Anhand mehrerer Beispiele werden wir uns den Unterschied zwischen (INNER) JOIN, LEFT (OUTER) JOIN, RIGHT (OUTER) JOIN und FULL (OUTER) JOIN vergegenwärtigen. SQL JOIN-Typen: Ein kurzer Überblick Für unsere JOIN-Beispiele verwenden wir Daten aus einem Geburtshaus, einer von Hebammen geleiteten Gesundheitseinrichtung für Mütter in den Wehen. Wir haben insbesondere zwei Tabellen: newbornsHier finden Sie einige grundlegende Informationen über die Babys, die in einem bestimmten Zeitraum geboren wurden. midwivesHier finden Sie eine Übersicht über die Hebammen, die in unserem Geburtshaus arbeiten, mit Namen und Erfahrung. Hier sind die Tabellen: newborns idmother_namegenderweightheightmidwife_id 11Marta StewartMale3.452.0104 12Cathrine BlackFemale3.048.5101 13Julia GreyFemale2.848.1104 14Penelope GreenMale3.852.5105 15Gabriela GarciaMale2.948.8105 16Nikita MooreMale4.053.0102 17Lucy MillerFemale2.547.3101 midwives idfirst_nameyears_experience 101Samantha White6 102Kathleen Webster2 103Sarah McCarty1 105Julia Smith4 106Angela Phillips0 Kommen wir direkt zu den Beispielen. INNER JOIN Wir beginnen mit dem häufigsten JOIN-Typ, nämlich INNER JOIN (oder einfach JOIN). Dieser Join-Typ wird verwendet, um übereinstimmende Datensätze aus beiden Tabellen anzuzeigen. Nehmen wir an, wir möchten die Kennung des Neugeborenen, den Namen der Mutter und den Namen der Hebamme, die bei der Geburt geholfen hat, abfragen. Um diese Informationen zu erhalten, können wir die newborns und midwives anhand der ID der Hebamme verknüpfen, die in beiden Tabellen vorhanden ist: SELECT n.id, n.mother_name, m.name AS midwife FROM newborns n JOIN midwives m ON n.midwife_id = m.id; Um den Tippaufwand zu verringern, verwenden wir Aliasnamen für Tabellennamen: n für newborns und m für midwives. Wir verwenden auch einen Spaltenalias (m.name AS midwife), um einen aussagekräftigen Spaltennamen in der Ausgabe zu erhalten. Hier ist das Ergebnis: idmother_namemidwife 12Cathrine BlackSamantha White 16Nikita MooreKathleen Webster 17Lucy MillerSamantha White 14Penelope GreenJulia Smith 15Gabriela GarciaJulia Smith Wir haben die gewünschten Informationen erhalten. Sie werden jedoch feststellen, dass einige Neugeborene (IDs 11 und 13) in unserer Ergebnistabelle fehlen. Das bedeutet, dass die entsprechenden Datensätze (d. h. die Hebammen-IDs) in der zweiten Tabelle (d. h. midwives) nicht identifiziert wurden. Wenn Sie alle Datensätze aus der ersten Tabelle behalten wollen, sollten Sie LEFT JOIN verwenden. LEFT JOIN LEFT JOIN oder LEFT OUTER JOIN wird verwendet, um alle Datensätze aus der ersten (linken) Tabelle und passende Datensätze aus der zweiten (rechten) Tabelle anzuzeigen. Um alle Neugeborenen in der Ausgabe zu behalten, können wir die gleiche Abfrage wie oben verwenden, indem wir einfach JOIN durch LEFT JOIN ersetzen: SELECT n.id, n.mother_name, m.name AS midwife FROM newborns n LEFT JOIN midwives m ON n.midwife_id = m.id; Und das Ergebnis: idmother_namemidwife 12Cathrine BlackSamantha White 14Penelope GreenJulia Smith 11Marta StewartNULL 13Julia GreyNULL 17Lucy MillerSamantha White 16Nikita MooreKathleen Webster 15Gabriela GarciaJulia Smith Jetzt haben wir alle Datensätze aus der Tabelle newborns Tabelle in der Ausgabe angezeigt. Gleichzeitig gibt es zwei Datensätze mit NULL-Werten in der Spalte Hebamme. Offensichtlich ist die entsprechende Hebamme (ID 104) nicht in den midwives Tabellen aufgeführt. Vielleicht arbeitet sie seit kurzem in einem anderen Geburtshaus. Großartig! Aber es ist auch interessant zu sehen, ob es in unserem Geburtshaus Hebammen gibt, die bei den letzten Geburten nicht assistiert haben. Lassen Sie uns das mit RIGHT JOIN herausfinden. RECHTSVERBINDUNG RIGHT JOIN oder RIGHT OUTER JOIN wird verwendet, um alle Datensätze aus der zweiten (rechten) Tabelle und passende Datensätze aus der ersten (linken) Tabelle anzuzeigen. Wenn wir alle Datensätze aus der Tabelle midwives-Tabelle erhalten möchten, können wir genau dieselbe SQL-Abfrage wie zuvor verwenden, indem wir lediglich LEFT JOIN durch RIGHT JOIN ersetzen: SELECT n.id, n.mother_name, m.name AS midwife FROM newborns n RIGHT JOIN midwives m ON n.midwife_id = m.id; Beachten Sie, dass RIGHT JOIN nur selten verwendet wird, da es normalerweise durch LEFT JOIN ersetzt werden kann. In unserem Fall könnten wir LEFT JOIN verwenden und die Reihenfolge der Tabellen vertauschen, d.h. wir setzen midwives in die FROM Klausel und newborns in die LEFT JOIN Klausel. Das Ergebnis wäre dasselbe wie unten: idmother_namemidwife 12Cathrine BlackSamantha White 14Penelope GreenJulia Smith 15Gabriela GarciaJulia Smith 16Nikita MooreKathleen Webster 17Lucy MillerSamantha White NULLNULLSarah McCarty NULLNULLAngela Phillips In der resultierenden Tabelle können Sie sehen, dass es zwei Hebammen ohne übereinstimmende Datensätze in der newborns Tabelle gibt: Sarah McCarty und Angela Phillips. Es sieht so aus, als hätten diese beiden Hebammen die geringste Erfahrung und unterstützen wahrscheinlich die erfahreneren Hebammen, ohne dass ihnen eine größere Rolle zugewiesen wird. Beachten Sie auch, dass wir wieder nicht alle Neugeborenen in der Ergebnismenge sehen. Was, wenn wir alle Datensätze aus beiden Tabellen behalten wollen? In diesem Fall sollte FULL JOIN verwendet werden. FULL JOIN FULL JOIN oder FULL OUTER JOIN wird verwendet, um alle Datensätze aus beiden Tabellen zu erhalten. Wenn wir also alle Neugeborenen und alle Hebammen in der Ergebnismenge behalten wollen, können wir einfach die RIGHT JOIN aus unserem letzten Beispiel durch eine FULL JOIN ersetzen. Beachten Sie auch, dass die Reihenfolge der Tabellen bei FULL JOIN keine Rolle spielt; wir können die Position der Tabellen vertauschen und erhalten das gleiche Ergebnis: SELECT n.id, n.mother_name, m.name AS midwife FROM newborns n FULL JOIN midwives m ON n.midwife_id = m.id; idmother_namemidwife 11Marta StewartNULL 12Cathrine BlackSamantha White 13Julia GreyNULL 14Penelope GreenJulia Smith 15Gabriela GarciaJulia Smith 16Nikita MooreKathleen Webster 17Lucy MillerSamantha White NULLNULLSarah McCarty NULLNULLAngela Phillips Jetzt haben wir einige NULL Werte in allen Spalten; diese zeigen an, dass einige der Datensätze der linken Tabelle nicht in der zweiten Tabelle übereinstimmen oder dass einige der Datensätze der rechten Tabelle nicht in der ersten Tabelle übereinstimmen. All diese JOIN-Prinzipien klingen nicht allzu anspruchsvoll, oder? Dennoch ist die Auswahl des richtigen JOINs für Anfänger oft eine Herausforderung. Lassen Sie uns also die besten Strategien zur Beherrschung von SQL-JOINs entdecken. 4 Wege zum Lernen SQL-JOINs Hier sind vier Schritte, um endlich die verschiedenen Arten von SQL-JOINs zu beherrschen. Lernen Sie die wichtigsten Unterschiede zwischen den JOIN-Typen. Ihr erster Schritt sollte darin bestehen, sich mit den vier wichtigsten JOIN-Typen und den grundlegenden Regeln für ihre Anwendung vertraut zu machen: JOIN zeigt nur die passenden Datensätze aus beiden Tabellen an. LEFT JOIN zeigt alle Datensätze aus der linken Tabelle und die passenden Datensätze aus der rechten Tabelle an. RIGHT JOIN zeigt alle Datensätze aus der rechten Tabelle und die übereinstimmenden Datensätze aus der linken Tabelle an. FULL JOIN zeigt alle Datensätze aus beiden Tabellen an. Lesen Sie hochwertige Artikel auf SQL-JOINs. Nachdem Sie die Grundlagen gelernt haben, empfehlen wir Ihnen, die Details und Anwendungsfälle für verschiedene JOIN-Typen durchzugehen. Ich empfehle Ihnen, mit diesen Artikeln zu beginnen, in denen alle wichtigen JOIN-Typen behandelt werden und die detaillierte Erklärungen und Beispiele enthalten: SQL JOIN-Typen erklärt Was ist ein SQL INNER JOIN? Was ist ein LEFT JOIN in SQL? Was ist ein FULL JOIN und wann wird er verwendet? 7 SQL JOIN Beispiele mit detaillierten Erklärungen Verwenden Sie unser SQL JOIN Cheat Sheet. Selbst wenn Sie SQL-JOINs recht gut kennen, ist es oft hilfreich, eine kurze Erinnerung mit der Syntax und den Anwendungsfällen für verschiedene JOIN-Typen zu sehen. Ich empfehle Ihnen, unser tolles SQL JOIN Cheat Sheet auszudrucken oder als Lesezeichen zu speichern. Es ist eine illustrierte Anleitung zu SQL-JOINs, die Sie immer dann nachschlagen können, wenn Sie sich nicht sicher sind, wie Sie JOIN in Ihrer SQL-Abfrage verwenden sollen. Üben Sie! Wenn Sie SQL-JOINs wirklich beherrschen wollen, müssen Sie viel üben. Lesen Sie über die Herausforderungen, denen Sie beim Üben von SQL-JOINs begegnen können. Um Ihre ersten Erfahrungen mit SQL-JOINs so reibungslos wie möglich zu gestalten, empfehle ich Ihnen, mit dem interaktiven LearnSQL.com SQL-JOINs Kurs zu beginnen. Dieser praxisnahe Kurs enthält 93 Programmieraufgaben, die alle wichtigen Arten von SQL-JOINs abdecken: Wann Sie JOIN, LEFT JOIN, RIGHT JOIN und FULL JOIN verwenden sollten. Wie man drei oder mehr Tabellen in einer Abfrage verbindet. Wie man Daten mit verschiedenen Join-Typen filtert. Wie man eine Tabelle mit sich selbst verknüpft. Was ein Non-Equi Join ist und wann er verwendet werden sollte. Mehr über diesen Kurs erfahren Sie in diesem Übersichtsartikel. Vielen Dank fürs Lesen und viel Spaß beim Lernen! Tags: JOIN