SQL-Unterabfrage-Join mit äußerer Abfrage

Sql Unterabfrage Join Mit Ausserer Abfrage



Wenn Sie mit relationalen Datenbanken arbeiten, müssen Sie wissen, wie Sie die Abfragen manipulieren und kombinieren, um die gewünschten Aufgaben auszuführen. Aus diesem Grund implementiert jede relationale Datenbank-Engine ihre Variante der SQL-Sprache, indem sie versucht, ihren Benutzern außergewöhnliche Funktionen, Effizienz und Benutzerfreundlichkeit zu bieten.

Eine der leistungsstärksten Funktionen von SQL sind Unterabfragen. Unterabfragen sind eine Reihe verschachtelter Abfragen innerhalb einer größeren und komplexeren Abfrage. Mit Unterabfragen können Sie die Daten abrufen oder komplexere Vorgänge als einzelne Entität ausführen.







Wir können die Unterabfragen verwenden, um Datenfilterung, -sortierung, -aggregation für mehrere Tabellen und mehr durchzuführen.



Allerdings ist eine weitere Funktion, die unter SQL-Unterabfragen verborgen ist, die sogenannte Unterabfrageverknüpfung. Diese ähneln Unterabfragen. Stattdessen handelt es sich um Verknüpfungen, die es Ihnen ermöglichen, die Unterabfragen innerhalb einer äußeren Abfrage zu verwenden, um die Tabellen miteinander zu verbinden.



Wenn Ihnen der Kopf schwirrt, machen Sie sich keine Sorgen, denn die Verknüpfung von Unterabfragen kann vor allem am Anfang eine Herausforderung sein. In diesem Tutorial wird jedoch versucht, die Unterabfrage-Joins in elementare Schritte aufzuschlüsseln, ohne zu viel dem Zufall zu überlassen.





Bedenken Sie, dass wir davon ausgehen, dass Sie kein Neuling im Umgang mit SQL, SQL-Joins, SQL-Unterabfragen usw. sind. Wenn ja, schauen Sie sich unsere Tutorials zu den jeweiligen Themen an, um mehr zu erfahren.

Beherrschen Sie die SQL Outer Joins

Wenn Sie verstehen möchten, wie man mit Unterabfrage-Joins arbeitet, ist das Erlernen der Arbeit mit den äußeren Joins ein Schlüsselfaktor.



Wenn Sie nicht damit vertraut sind: Mit einem SQL-Outer-Join können Sie alle Zeilen aus einer Tabelle und die passenden Zeilen aus der zweiten Tabelle abrufen. Es ist etwas komplexer und umfasst den linken Außen-Join, den rechten Außen-Join, den vollständigen Außen-Join usw.

Bei einem SQL-Left-Outer-Join gibt die Abfrage alle Zeilen aus der linken Tabelle und die passenden Zeilen aus der rechten Tabelle zurück. Die Abfrage schließt die NULL-Werte in die resultierenden Spalten ein, wenn in der rechten Tabelle keine übereinstimmenden Zeilen vorhanden sind.

Bei einem rechten Outer-Join gibt die Abfrage alle Zeilen der rechten Tabelle zurück, aber nur die passenden Zeilen der linken Tabelle. Ebenso enthält die Abfrage die NULL-Werte, wenn in der linken Tabelle keine übereinstimmenden Zeilen vorhanden sind.

Schließlich haben wir den vollständigen äußeren Join. Dieser Join gibt alle Zeilen aus der rechten und linken Tabelle sowie die NULL-Werte für alle nicht übereinstimmenden Datensätze zurück.

SQL-Unterabfrage-Joins

Nachdem wir nun die SQL-Unterabfragen verstanden haben, sprechen wir über Unterabfrage-Joins. Mithilfe von Unterabfrageverknüpfungen können wir die Unterabfragen innerhalb einer äußeren Abfrage verwenden, um die Tabellen zu verknüpfen.

Wenn Sie fragen, ist es das? Ja, das ist alles, was Unterabfrage-Joins bewirken.

Um dies besser zu veranschaulichen, verwenden Sie das folgende Syntaxbeispiel, das im Folgenden demonstriert wird:

WÄHLEN *
AUS Tabelle1
LINKE ÄUSSERE VERBINDUNG (
SELECT Spalte1, Spalte2
VON Tabelle2
) AS-Unterabfrage
ON table1.column3 = subquery.column1;


In der vorherigen Syntax wählen wir alle Spalten aus Tabelle eins aus, indem wir einen linken äußeren Join verwenden, um sie mit einer Unterabfrage zu verbinden. Die Rolle der Unterabfrage besteht darin, die definierten Spalten aus Tabelle 2 abzurufen. Anschließend verknüpfen wir sie mit Tabelle 1 unter der Bedingung, dass Spalte 2 aus Tabelle 1 und Spalte 1 aus der Unterabfrage vorhanden sind.

Praxisbeispiel:

Theoretisch scheint es weniger intuitiv zu sein, aber lassen Sie uns ein reales Szenario anhand der Sakila-Datenbank betrachten.

Angenommen, wir möchten die Liste aller Filme in der Datenbank und ihre jeweiligen Sprachen abrufen. Die Sprachen der Filme werden in der Sprachtabelle gespeichert, und die Filmnamen werden in der Filmtabelle gespeichert.

Die Filmtabelle verfügt jedoch über einen Fremdschlüssel namens „Language_ID“-Spalte aus der Sprachtabelle. Daher können wir einen Unterabfrage-Join mit einem linken Outer-Join verwenden, um die beiden Tabellen miteinander zu verbinden, wie in der folgenden Abfrage gezeigt:

SELECT f.title, l.name AS language
VON film f
LINKE ÄUSSERE VERBINDUNG (
SELECT language_id, Name
VON Sprache
) AS l
ON f.Sprache_id = l.Sprache_ID;


In der vorherigen Beispielabfrage wählen wir die Titelspalte aus der Filmtabelle und die Namensspalte aus der Sprachtabelle aus.

Anschließend verwenden wir eine Unterabfrage, um die Sprach-ID und die Namensspalte aus der Sprachentabelle auszuwählen. Der nächste Schritt besteht darin, es mit der Filmtabelle zu verknüpfen, unter der Bedingung, dass die language_id aus der Filmtabelle mit der language_id aus der Sprachtabelle übereinstimmt.

Um sicherzustellen, dass alle Filme im Ergebnis enthalten sind, müssen wir den linken äußeren Join verwenden, der aus allen Ergebnissen der linken Tabelle besteht, in diesem Fall der Filmtabelle.

Eine Beispielausgabe sieht wie folgt aus:


Dasselbe können wir auch mit einem Right Outer Join machen. Die Syntax lautet wie folgt:

WÄHLEN *
AUS Tabelle1
RECHTER ÄUSSERER JOIN (
SELECT Spalte1, Spalte2
VON Tabelle2
) AS-Unterabfrage
ON table1.column3 = subquery.column1;


Dies verhält sich ähnlich, schließt jedoch alle Datensätze in der rechten Tabelle ein, auch wenn keine passenden Datensätze vorhanden sind.

Nützliches Wissenswertes

Es ist gut zu verstehen, dass Unterabfrage-Joins zwar unglaublich nützlich sind und Ihren Arbeitsablauf optimieren können, Sie sie jedoch mit Vorsicht verwenden sollten.

Vermeiden Sie beispielsweise die Verwendung von Unterabfrage-Joins bei einem großen Datensatz. Dies liegt daran, dass sie umfangreiche Datensätze zurückgeben können, die sich auf die Datenbankleistung auswirken können.

Erwägen Sie die Verwendung der Tools zur Abfrageanalyse, bevor Sie Unterabfrageverknüpfungen ausführen.

Abschluss

In diesem Tutorial wurden die Grundlagen der Arbeit mit Unterabfragen und Unterabfrage-Joins in SQL erläutert. Am Ende dieses Tutorials verstehen Sie nun, wie Sie mit Unterabfrage-Joins arbeiten, warum Sie sie möglicherweise verwenden müssen und erhalten ein praktisches Beispiel dafür, wie sie Ihnen in Ihrem Arbeitsablauf helfen können.