inner join vs outer join
Inner Join Vs Outer Join: Machen Sie sich bereit, die genauen Unterschiede zwischen Inner und Outer Join zu untersuchen
Bevor wir die Unterschiede zwischen Inner Join und Outer Join untersuchen, wollen wir zunächst sehen, was ein SQL JOIN ist.
Eine Join-Klausel wird verwendet, um Datensätze zu kombinieren oder die Datensätze aus zwei oder mehr Tabellen über eine Join-Bedingung zu bearbeiten. Die Verknüpfungsbedingung gibt an, wie Spalten aus jeder Tabelle miteinander abgeglichen werden.
Join basiert auf einer verwandten Spalte zwischen diesen Tabellen. Ein häufiges Beispiel ist die Verknüpfung zwischen zwei Tabellen über die Primärschlüsselspalte und die Fremdschlüsselspalte.
Angenommen, wir haben eine Tabelle mit dem Mitarbeitergehalt und eine weitere Tabelle mit Mitarbeiterdetails.
In diesem Fall gibt es eine gemeinsame Spalte wie die Mitarbeiter-ID, die diese beiden Tabellen verbindet. Diese Mitarbeiter-ID-Spalte ist der Primärschlüssel der Mitarbeiterdetailtabellen und der Fremdschlüssel in der Mitarbeitergehaltstabelle.
Es ist sehr wichtig, einen gemeinsamen Schlüssel zwischen den beiden Entitäten zu haben. Sie können sich eine Tabelle als Entität und den Schlüssel als eine gemeinsame Verbindung zwischen den beiden Tabellen vorstellen, die für die Verknüpfungsoperation verwendet wird.
wie man ein Diagramm in Java darstellt
Grundsätzlich gibt es zwei Arten von Join in SQL, d. H. Inner Join und Outer Join . Die äußere Verbindung wird weiter in drei Typen unterteilt, d.h. Left Outer Join, Right Outer Join und Full Outer Join.
In diesem Artikel werden wir den Unterschied zwischen sehen Inner Join und Outer Join im Detail. Wir werden die Cross Joins und Unequal Joins aus dem Geltungsbereich dieses Artikels heraushalten.
Was du lernen wirst:
- Was ist Inner Join?
- Was ist Outer Join?
- Unterschied zwischen innerer und äußerer Verbindung
- Performance
- MS Access Inner und Outer Join
- Left Join vs Left Outer Join
- Left Outer Join vs Right Outer Join
- Unterschied zwischen innerer und äußerer Verbindung im Tabellenformat
- Inner und Outer Join vs Union
- Fazit
- Literatur-Empfehlungen
Was ist Inner Join?
Ein innerer Join gibt nur die Zeilen zurück, deren Werte in beiden Tabellen übereinstimmen (wir betrachten hier, dass der Join zwischen den beiden Tabellen erfolgt).
Was ist Outer Join?
Der äußere Join enthält die übereinstimmenden Zeilen sowie einige der nicht übereinstimmenden Zeilen zwischen den beiden Tabellen. Eine äußere Verknüpfung unterscheidet sich grundlegend von der inneren Verknüpfung darin, wie sie mit der Bedingung einer falschen Übereinstimmung umgeht.
Es gibt 3 Arten von Outer Join:
- Linke äußere Verbindung : Gibt alle Zeilen aus der LEFT-Tabelle und übereinstimmende Datensätze zwischen beiden Tabellen zurück.
- Right Outer Join : Gibt alle Zeilen aus der RIGHT-Tabelle und übereinstimmende Datensätze zwischen beiden Tabellen zurück.
- Volle äußere Verbindung : Es kombiniert das Ergebnis der linken äußeren Verbindung und der rechten äußeren Verbindung.
Unterschied zwischen innerer und äußerer Verbindung
(Bild Quelle ))
Wie in dem obigen Diagramm gezeigt, gibt es zwei Entitäten, d. H. Tabelle 1 und Tabelle 2, und beide Tabellen teilen einige gemeinsame Daten.
Eine innere Verknüpfung gibt den gemeinsamen Bereich zwischen diesen Tabellen zurück (den grün schattierten Bereich im obigen Diagramm), d. H. Alle Datensätze, die zwischen Tabelle 1 und Tabelle 2 gemeinsam sind.
Ein Left Outer Join gibt alle Zeilen aus Tabelle 1 zurück und nur die Zeilen aus Tabelle 2, die auch Tabelle 1 gemeinsam sind. Ein Right Outer Join bewirkt genau das Gegenteil. Es werden alle Datensätze aus Tabelle 2 und nur die entsprechenden übereinstimmenden Datensätze aus Tabelle 1 angezeigt.
Darüber hinaus liefert uns ein vollständiger äußerer Join alle Datensätze aus Tabelle 1 und Tabelle 2.
Beginnen wir mit einem Beispiel, um dies klarer zu machen.
Angenommen, wir haben zwei Tabellen: EmpDetails und EmpSalary .
EmpDetails-Tabelle:
Angestellten ID | Mitarbeitername |
7 | Lilie |
1 | John |
zwei | Samantha |
3 | Keiner |
4 | Seidig |
5 | RAM |
6 | Arpit |
8 | Sita |
9 | Farah |
10 | Jerry |
EmpSalary-Tabelle:
Angestellten ID | Mitarbeitername | Mitarbeitergehalt |
---|---|---|
elf | Rose | 90000 |
1 | John | 50.000 |
zwei | Samantha | 120000 |
3 | Keiner | 75000 |
4 | Seidig | 25000 |
5 | RAM | 150000 |
6 | Arpit | 80000 |
12 | Sakshi | 45000 |
13 | Jack | 250.000 |
Lassen Sie uns einen inneren Join für diese beiden Tabellen durchführen und das Ergebnis beobachten:
Abfrage:
SELECT EmpDetails. EmployeeID, EmpDetails. EmployeeName, EmpSalary. EmployeeSalary FROM EmpDetails INNER JOIN EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Ergebnis:
Angestellten ID | Mitarbeitername | Mitarbeitergehalt |
---|---|---|
7 | Lilie | NULL |
1 | John | 50.000 |
zwei | Samantha | 120000 |
3 | Keiner | 75000 |
4 | Seidig | 25000 |
5 | RAM | 150000 |
6 | Arpit | 80000 |
In der obigen Ergebnismenge können Sie sehen, dass Inner Join die ersten 6 Datensätze zurückgegeben hat, die sowohl in EmpDetails als auch in EmpSalary vorhanden waren und einen passenden Schlüssel haben, d. H. EmployeeID. Wenn also A und B zwei Entitäten sind, gibt der Inner Join die Ergebnismenge zurück, die basierend auf dem übereinstimmenden Schlüssel gleich 'Datensätze in A und B' ist.
Lassen Sie uns nun sehen, was ein Left Outer Join bewirkt.
Abfrage:
SELECT EmpDetails. EmployeeID, EmpDetails. EmployeeName, EmpSalary. EmployeeSalary FROM EmpDetails LEFT JOIN EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Ergebnis:
Angestellten ID | Mitarbeitername | Mitarbeitergehalt |
---|---|---|
1 | John | 50.000 |
zwei | Samantha | 120000 |
3 | Keiner | 75000 |
4 | Seidig | 25000 |
5 | RAM | 150000 |
6 | Arpit | 80000 |
8 | Sita | NULL |
9 | Farah | NULL |
10 | Jerry | NULL |
In der obigen Ergebnismenge können Sie sehen, dass der linke äußere Join alle 10 Datensätze aus der LEFT-Tabelle zurückgegeben hat, d. H. Die EmpDetails-Tabelle, und da die ersten 6 Datensätze übereinstimmen, hat er das Mitarbeitergehalt für diese übereinstimmenden Datensätze zurückgegeben.
Da der Rest der Datensätze keinen passenden Schlüssel in der RIGHT-Tabelle hat, d. H. Die EmpSalary-Tabelle, hat er NULL zurückgegeben, das diesen entspricht. Da Lily, Sita, Farah und Jerry keine übereinstimmende Mitarbeiter-ID in der EmpSalary-Tabelle haben, wird ihr Gehalt in der Ergebnismenge als NULL angezeigt.
Wenn also A und B zwei Entitäten sind, gibt die linke äußere Verknüpfung die Ergebnismenge zurück, die basierend auf dem übereinstimmenden Schlüssel gleich 'Datensätze in A NICHT B' ist.
Lassen Sie uns nun beobachten, was der Right Outer Join bewirkt.
Abfrage:
SELECT EmpDetails. EmployeeID, EmpDetails. EmployeeName, EmpSalary. EmployeeSalary FROM EmpDetails RIGHT join EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Ergebnis:
Angestellten ID | Mitarbeitername | Mitarbeitergehalt |
---|---|---|
NULL | NULL | 90000 |
1 | John | 50.000 |
zwei | Samantha | 120000 |
3 | Keiner | 75000 |
4 | Seidig | 25000 |
5 | RAM | 150000 |
6 | Arpit | 80000 |
NULL | NULL | 250.000 |
NULL | NULL | 250.000 |
In der obigen Ergebnismenge können Sie sehen, dass der rechte äußere Join genau das Gegenteil des linken Joins bewirkt hat. Es wurden alle Gehälter aus der rechten Tabelle zurückgegeben, d. H. Der EmpSalary-Tabelle.
Da Rose, Sakshi und Jack jedoch keine übereinstimmende Mitarbeiter-ID in der linken Tabelle haben, d. H. Die EmpDetails-Tabelle, haben wir ihre Mitarbeiter-ID und ihren Mitarbeiternamen als NULL aus der linken Tabelle.
Wenn also A und B zwei Entitäten sind, gibt der rechte äußere Join die Ergebnismenge zurück, die basierend auf dem übereinstimmenden Schlüssel gleich 'Datensätze in B NICHT A' ist.
Lassen Sie uns auch sehen, was die Ergebnismenge sein wird, wenn wir eine Auswahloperation für alle Spalten in beiden Tabellen ausführen.
Abfrage:
SELECT * FROM EmpDetails RIGHT JOIN EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Ergebnis:
Angestellten ID | Mitarbeitername | Angestellten ID | Mitarbeitername | Mitarbeitergehalt |
---|---|---|---|---|
NULL | NULL | elf | Rose | 90000 |
1 | John | 1 | John | 50.000 |
zwei | Samantha | zwei | Samantha | 120000 |
3 | Keiner | 3 | Keiner | 75000 |
4 | Seidig | 4 | Seidig | 25000 |
5 | RAM | 5 | RAM | 150000 |
6 | Arpit | 6 | Arpit | 80000 |
NULL | NULL | 12 | Sakshi | 250.000 |
NULL | NULL | 13 | Jack | 250.000 |
Lassen Sie uns nun zum vollständigen Join übergehen.
Eine vollständige äußere Verknüpfung wird durchgeführt, wenn alle Daten aus beiden Tabellen angezeigt werden sollen, unabhängig davon, ob eine Übereinstimmung vorliegt oder nicht. Wenn ich also alle Mitarbeiter haben möchte, auch wenn ich keinen passenden Schlüssel finde, führe ich eine Abfrage wie unten gezeigt aus.
Abfrage:
So öffnen Sie die DAT-Datei unter Windows
SELECT * FROM EmpDetails FULL JOIN EmpSalary ON EmpDetails. EmployeeID = EmpSalary. EmployeeID;
Ergebnis:
Angestellten ID | Mitarbeitername | Angestellten ID | Mitarbeitername | Mitarbeitergehalt |
---|---|---|---|---|
7 | Lilie | NULL | NULL | NULL |
1 | John | 1 | John | 50.000 |
zwei | Samantha | zwei | Samantha | 120000 |
3 | Keiner | 3 | Keiner | 75000 |
4 | Seidig | 4 | Seidig | 25000 |
5 | RAM | 5 | RAM | 150000 |
6 | Arpit | 6 | Arpit | 80000 |
8 | Sita | NULL | NULL | NULL |
9 | Farah | NULL | NULL | NULL |
10 | Jerry | NULL | NULL | NULL |
NULL | NULL | elf | Rose | 90000 |
NULL | NULL | 12 | Sakshi | 250.000 |
NULL | NULL | 13 | Jack | 250.000 |
Sie können in der obigen Ergebnismenge sehen, dass wir, da die ersten sechs Datensätze in beiden Tabellen übereinstimmen, alle Daten ohne NULL erhalten haben. Die nächsten vier Datensätze sind in der linken Tabelle vorhanden, jedoch nicht in der rechten Tabelle. Daher sind die entsprechenden Daten in der rechten Tabelle NULL.
Die letzten drei Datensätze sind in der rechten Tabelle und nicht in der linken Tabelle vorhanden, daher haben wir NULL in den entsprechenden Daten aus der linken Tabelle. Wenn also A und B zwei Entitäten sind, gibt der vollständige äußere Join die Ergebnismenge zurück, die unabhängig vom übereinstimmenden Schlüssel gleich 'Datensätze in A UND B' ist.
Theoretisch handelt es sich um eine Kombination aus Links- und Rechtsverbindung.
Performance
Vergleichen wir einen inneren Join mit einem linken äußeren Join im SQL Server. In Bezug auf die Betriebsgeschwindigkeit ist ein linker äußerer JOIN offensichtlich nicht schneller als ein innerer Join.
Gemäß der Definition muss eine äußere Verknüpfung, sei es die linke oder die rechte, die gesamte Arbeit einer inneren Verknüpfung zusammen mit der zusätzlichen Arbeit ausführen, wodurch die Ergebnisse nicht erweitert werden. Es wird erwartet, dass ein Outer Join eine größere Anzahl von Datensätzen zurückgibt, was seine Gesamtausführungszeit nur aufgrund der größeren Ergebnismenge weiter erhöht.
Somit ist eine äußere Verbindung langsamer als eine innere Verbindung.
Darüber hinaus kann es bestimmte Situationen geben, in denen die linke Verknüpfung schneller als eine innere Verknüpfung ist. Wir können sie jedoch nicht durch andere ersetzen, da eine linke äußere Verknüpfung funktional nicht einer inneren Verknüpfung entspricht.
Lassen Sie uns einen Fall diskutieren, in dem die linke Verknüpfung möglicherweise schneller ist als die innere Verknüpfung. Wenn die an der Verknüpfungsoperation beteiligten Tabellen zu klein sind, sagen wir, sie haben weniger als 10 Datensätze und die Tabellen verfügen nicht über ausreichende Indizes, um die Abfrage abzudecken. In diesem Fall ist die linke Verknüpfung im Allgemeinen schneller als die innere Verknüpfung.
Lassen Sie uns die beiden folgenden Tabellen erstellen und als Beispiel einen INNER JOIN und einen LEFT OUTER JOIN zwischen ihnen erstellen:
CREATE TABLE #Table1 ( ID int NOT NULL PRIMARY KEY, Name varchar(50) NOT NULL ) INSERT #Table1 (ID, Name) VALUES (1, 'A') INSERT #Table1 (ID, Name) VALUES (2, 'B') INSERT #Table1 (ID, Name) VALUES (3, 'C') INSERT #Table1 (ID, Name) VALUES (4, 'D') INSERT #Table1 (ID, Name) VALUES (5, 'E') CREATE TABLE #Table2 ( ID int NOT NULL PRIMARY KEY, Name varchar(50) NOT NULL ) INSERT #Table2 (ID, Name) VALUES (1, 'A') INSERT #Table2 (ID, Name) VALUES (2, 'B') INSERT #Table2 (ID, Name) VALUES (3, 'C') INSERT #Table2 (ID, Name) VALUES (4, 'D') INSERT #Table2 (ID, Name) VALUES (5, 'E') SELECT * FROM #Table1 t1 INNER JOIN #Table2 t2 ON t2.Name = t1.Name
ICH WÜRDE | Name | ICH WÜRDE | Name | |
---|---|---|---|---|
Unten sehen Sie die Visualisierung einer inneren Verknüpfung: | Unten sehen Sie die Visualisierung einer äußeren Verknüpfung | |||
1 | 1 | ZU | 1 | ZU |
zwei | zwei | B. | zwei | B. |
3 | 3 | C. | 3 | C. |
4 | 4 | D. | 4 | D. |
5 | 5 | IS | 5 | IS |
SELECT * FROM (SELECT 38 AS bah) AS foo JOIN (SELECT 35 AS bah) AS bar ON (55=55);
ICH WÜRDE | Name | ICH WÜRDE | Name | |
---|---|---|---|---|
1 | 1 | ZU | 1 | ZU |
zwei | zwei | B. | zwei | B. |
3 | 3 | C. | 3 | C. |
4 | 4 | D. | 4 | D. |
5 | 5 | IS | 5 | IS |
Wie Sie oben sehen können, haben beide Abfragen dieselbe Ergebnismenge zurückgegeben. Wenn Sie in diesem Fall den Ausführungsplan beider Abfragen anzeigen, werden Sie feststellen, dass der innere Join mehr gekostet hat als der äußere Join. Dies liegt daran, dass der SQL Server für einen inneren Join eine Hash-Übereinstimmung ausführt, während er verschachtelte Schleifen für den linken Join ausführt.
Eine Hash-Übereinstimmung ist normalerweise schneller als die verschachtelten Schleifen. In diesem Fall hat sich die Hash-Operation jedoch als eine der teuersten Abfragen für innere Verknüpfungen herausgestellt, da die Anzahl der Zeilen so gering ist und kein Index verwendet werden kann (da wir die Spalte 'Join on Name' ausführen).
Wenn Sie jedoch den übereinstimmenden Schlüssel in der Verknüpfungsabfrage von Name in ID ändern und die Tabelle eine große Anzahl von Zeilen enthält, ist die innere Verknüpfung schneller als die linke äußere Verknüpfung.
MS Access Inner und Outer Join
Wenn Sie in der MS Access-Abfrage mehrere Datenquellen verwenden, wenden Sie JOINs an, um die Datensätze zu steuern, die angezeigt werden sollen, je nachdem, wie die Datenquellen miteinander verknüpft sind.
In einem inneren Join werden nur die zugehörigen aus beiden Tabellen in einer einzigen Ergebnismenge zusammengefasst. Dies ist ein Standard-Join in Access und der am häufigsten verwendete. Wenn Sie einen Join anwenden, aber nicht explizit angeben, um welchen Join-Typ es sich handelt, geht der Access davon aus, dass es sich um einen inneren Join handelt.
In äußeren Verknüpfungen werden alle zugehörigen Daten aus beiden Tabellen korrekt kombiniert, plus alle verbleibenden Zeilen aus einer Tabelle. Bei vollständigen äußeren Verknüpfungen werden alle Daten nach Möglichkeit kombiniert.
Left Join vs Left Outer Join
In SQL Server ist das Schlüsselwort Outer optional, wenn Sie Left Outer Join anwenden. Daher macht es keinen Unterschied, ob Sie entweder 'LEFT OUTER JOIN' oder 'LEFT JOIN' schreiben, da beide das gleiche Ergebnis liefern.
A LEFT JOIN B ist eine äquivalente Syntax zu A LEFT OUTER JOIN B.
Unten finden Sie eine Liste der entsprechenden Syntaxen im SQL Server:
(Bild Quelle ))
Left Outer Join vs Right Outer Join
Diesen Unterschied haben wir bereits in diesem Artikel gesehen. Sie können sich auf die Abfragen und die Ergebnismenge für Left Outer Join und Right Outer Join beziehen, um den Unterschied zu erkennen.
Der Hauptunterschied zwischen dem linken und dem rechten Join besteht in der Einbeziehung nicht übereinstimmender Zeilen. Der linke äußere Join enthält die nicht übereinstimmenden Zeilen aus der Tabelle, die sich links von der Join-Klausel befindet, während ein rechter äußerer Join die nicht übereinstimmenden Zeilen aus der Tabelle enthält, die sich rechts von der Join-Klausel befindet.
Die Leute fragen, was besser zu verwenden ist, d. H. Links oder rechts? Grundsätzlich handelt es sich um dieselbe Art von Operationen, außer dass ihre Argumente umgekehrt sind. Wenn Sie also fragen, welcher Join verwendet werden soll, fragen Sie tatsächlich, ob Sie einen schreiben sollen ein. Es ist nur eine Frage der Präferenz.
Im Allgemeinen bevorzugen Benutzer die Verwendung von Left Join in ihrer SQL-Abfrage. Ich würde vorschlagen, dass Sie in der Art und Weise, wie Sie die Abfrage schreiben, konsistent bleiben, um Verwirrung bei der Interpretation der Abfrage zu vermeiden.
Wir haben bisher alles über Inner Join und alle Arten von Outer Joins gesehen. Lassen Sie uns den Unterschied zwischen Inner Join und Outer Join kurz zusammenfassen.
Unterschied zwischen innerer und äußerer Verbindung im Tabellenformat
Inner Join | Äußere Verbindung |
---|---|
Gibt nur die Zeilen zurück, deren Werte in beiden Tabellen übereinstimmen. | Enthält die übereinstimmenden Zeilen sowie einige der nicht übereinstimmenden Zeilen zwischen den beiden Tabellen. |
Wenn die Tabellen eine große Anzahl von Zeilen enthalten und ein Index verwendet werden muss, ist INNER JOIN im Allgemeinen schneller als OUTER JOIN. | Im Allgemeinen ist ein OUTER JOIN langsamer als ein INNER JOIN, da er im Vergleich zu INNER JOIN mehr Datensätze zurückgeben muss. Es kann jedoch bestimmte Szenarien geben, in denen OUTER JOIN schneller ist. |
Wenn eine Übereinstimmung nicht gefunden wird, wird nichts zurückgegeben. | Wenn keine Übereinstimmung gefunden wird, wird NULL in den zurückgegebenen Spaltenwert eingefügt. |
Verwenden Sie INNER JOIN, wenn Sie detaillierte Informationen zu einer bestimmten Spalte abrufen möchten. | Verwenden Sie OUTER JOIN, wenn Sie die Liste aller Informationen in den beiden Tabellen anzeigen möchten. |
INNER JOIN wirkt wie ein Filter. Beide Tabellen müssen übereinstimmen, damit ein innerer Join Daten zurückgibt. | Sie verhalten sich wie Daten-Add-Ons. |
Für den inneren Join gibt es eine implizite Join-Notation, bei der Tabellen, die in der FROM-Klausel durch Kommas getrennt verbunden werden sollen, aufgelistet werden. Beispiel: SELECT * FROM Produkt, Kategorie WHERE Produkt.CategoryID = Kategorie.CategoryID; | Für die äußere Verknüpfung gibt es keine implizite Verknüpfungsnotation. |
Inner und Outer Join vs Union
Manchmal verwechseln wir Join und Union und dies ist auch eine der am häufigsten gestellten Fragen in SQL-Interviews . Wir haben bereits den Unterschied zwischen innerer und äußerer Verbindung gesehen. Lassen Sie uns nun sehen, wie sich ein JOIN von einer UNION unterscheidet.
UNION stellt eine Reihe von Abfragen nacheinander, während join ein kartesisches Produkt erstellt und es in Teilmengen unterteilt. Somit sind UNION und JOIN völlig unterschiedliche Operationen.
Lassen Sie uns die folgenden zwei Abfragen in MySQL ausführen und deren Ergebnis sehen.
UNION-Abfrage:
SELECT 28 AS bah UNION SELECT 35 AS bah;
Ergebnis:
Bah | |
---|---|
1 | 28 |
zwei | 35 |
JOIN-Abfrage:
SELECT * FROM (SELECT 38 AS bah) AS foo JOIN (SELECT 35 AS bah) AS bar ON (55=55);
Ergebnis:
foo | Bar | |
---|---|---|
1 | 38 | 35 |
Eine UNION-Operation fasst das Ergebnis von zwei oder mehr Abfragen in einer einzigen Ergebnismenge zusammen. Diese Ergebnismenge enthält alle Datensätze, die über alle an der UNION beteiligten Abfragen zurückgegeben werden. Grundsätzlich kombiniert eine UNION die beiden Ergebnismengen miteinander.
Eine Verknüpfungsoperation ruft Daten aus zwei oder mehr Tabellen basierend auf den logischen Beziehungen zwischen diesen Tabellen ab, d. H. Basierend auf der Verknüpfungsbedingung. Bei der Verknüpfungsabfrage werden Daten aus einer Tabelle verwendet, um Datensätze aus einer anderen Tabelle auszuwählen. Sie können ähnliche Daten verknüpfen, die in verschiedenen Tabellen vorhanden sind.
Um es ganz einfach zu verstehen, können Sie sagen, dass eine UNION Zeilen aus zwei Tabellen kombiniert, während ein Join Spalten aus zwei oder mehr Tabellen kombiniert. Somit werden beide verwendet, um die Daten aus n Tabellen zu kombinieren, aber der Unterschied besteht darin, wie die Daten kombiniert werden.
Unten finden Sie die bildlichen Darstellungen von UNION und JOIN.
Das Obige ist eine bildliche Darstellung einer Verknüpfungsoperation, die zeigt, dass jeder Datensatz in der Ergebnismenge Spalten aus beiden Tabellen enthält, d. H. Tabelle A und Tabelle B. Dieses Ergebnis wird basierend auf der in der Abfrage angewendeten Verknüpfungsbedingung zurückgegeben.
Ein Join ist im Allgemeinen das Ergebnis einer Denormalisierung (im Gegensatz zur Normalisierung) und verwendet den Fremdschlüssel einer Tabelle, um die Spaltenwerte nachzuschlagen, indem der Primärschlüssel in einer anderen Tabelle verwendet wird.
Das Obige ist eine bildliche Darstellung einer UNION-Operation, die zeigt, dass jeder Datensatz in der Ergebnismenge eine Zeile aus einer der beiden Tabellen ist. Somit hat das Ergebnis der UNION die Zeilen aus Tabelle A und Tabelle B kombiniert.
Weiterführende Literatur = >> MySQL UNION mit Beispielen erklärt
Fazit
In diesem Artikel haben wir die Hauptunterschiede zwischen den Inner Join und Outer Join in SQL . Wir haben auch die Klassifizierung eines äußeren Joins gesehen, d. H. Linker Join, rechter Join und vollständiger Join. Wir haben gesehen, wie jeder dieser Join-Typen funktioniert und wie sie sich voneinander unterscheiden.
Wir haben auch einen Leistungsvergleich zwischen diesen Join-Typen durchgeführt. Wir haben auch diskutiert, wie sich ein Beitritt von einer Gewerkschaft unterscheidet.
Lesen Sie auch = >> MySQL Join-Typen
Ich hoffe, dieser Artikel hätte Ihnen geholfen, Ihre Zweifel an den Unterschieden zwischen den verschiedenen Join-Typen auszuräumen. Wir sind sicher, dass Sie dadurch anhand der gewünschten Ergebnismenge entscheiden können, aus welchem Join-Typ Sie auswählen möchten.
Literatur-Empfehlungen
- Genauer Unterschied zwischen Verifikation und Validierung anhand von Beispielen
- Modem gegen Router: Kennen Sie den genauen Unterschied
- Unterschied zwischen SQL und MySQL und SQL Server (mit Beispielen)
- Python DateTime Tutorial mit Beispielen
- LAN gegen WAN gegen MAN: Genauer Unterschied zwischen den Netzwerktypen
- Befehl in Unix mit Beispielen ausschneiden
- Unix Cat-Befehlssyntax, Optionen mit Beispielen
- Verwendung des Cursors in MongoDB mit Beispielen