In diesem Artikel wird SQL zusammengestellt: innere, linke, rechte, volle Außen- und Kreuzverbindungen. Es beschreibt ihre Funktionalität, Anwendungsfälle und Leistung im Auswirkungen auf die Leistung. Die Auswahl des entsprechenden Joinentyps hängt davon ab, ob Sie alle Zeilen von einem oder beiden Tabellen benötigen
Verschiedene Arten von SQL -Anschlüssen
SQL -Anschlüsse werden verwendet, um Zeilen aus zwei oder mehr Tabellen zu kombinieren, die auf einer zugehörigen Spalte zwischen ihnen basieren. Es gibt verschiedene Arten von Verbindungen, die jeweils einen anderen Zweck erfüllen:
LEFT JOIN
angegebene Tabelle), auch wenn in der rechten Tabelle keine Übereinstimmung vorhanden ist. Für Zeilen in der linken Tabelle, die in der rechten Tabelle übereinstimmen, sind die entsprechenden Spalten aus der rechten Tabelle enthalten. Wenn es keine Übereinstimmung gibt, haben die Spalten aus der rechten Tabelle NULL
.LEFT JOIN
. Es gibt alle Zeilen aus der rechten Tabelle zurück, auch wenn es in der linken Tabelle kein Übereinstimmung gibt. Übereinstimmende Zeilen aus der linken Tabelle sind enthalten; Andernfalls haben die linken Tabellenspalten NULL
.NULL
. Dies liefert das umfassendste Ergebnis und zeigt alle Daten aus beiden Tabellen unabhängig von den Übereinstimmungen.JOIN
-Zustand anzugeben.Wählen Sie zwischen links und dem inneren Join
Sie sollten einen LEFT JOIN
anstelle eines INNER JOIN
verwenden.
Stellen Sie sich zum Beispiel vor, Sie haben einen Customers
und eine Orders
. Eine INNER JOIN
würde nur Kunden zurückgeben, die Bestellungen erteilt haben. Eine LEFT JOIN
würde alle Kunden zurückgeben und ihre Bestellungen angezeigt, wenn sie eine haben, und NULL
Werte für Bestelldetails, wenn sie keine Bestellungen erteilt haben. Auf diese Weise können Sie ein komplettes Bild aller Kunden und deren Bestellstatus sehen. Der LEFT JOIN
ist entscheidend, wenn Sie alle Daten aus einer Tabelle aufbewahren müssen, unabhängig von den Übereinstimmungen in der anderen.
Voller äußerer Join vs. links und rechts Join
Ein FULL OUTER JOIN
kombiniert die Ergebnisse einer LEFT JOIN
und eines RIGHT JOIN
. Es gibt alle Zeilen von den linken und rechten Tischen zurück. Wenn Zeilen anhand der Join -Bedingung übereinstimmen, sind die entsprechenden Spalten enthalten. Wenn in einer Tabelle keine Übereinstimmung vorhanden ist, enthalten die Spalten aus dieser Tabelle NULL
.
Eine LEFT JOIN
enthält nur alle Zeilen aus der linken Tabelle, während eine RIGHT JOIN
nur alle Zeilen aus der rechten Tabelle enthält. Der FULL OUTER JOIN
ist der inklusivste und sorgt dafür, dass keine Daten aus beiden Tabellen verloren gehen. Es ist besonders nützlich, wenn Sie ein vollständiges Bild von Daten aus beiden Tabellen benötigen, unabhängig davon, ob sie entsprechende Einträge haben. Beachten Sie jedoch, dass nicht alle Datenbanksysteme FULL OUTER JOIN
unterstützen.
Leistungsauswirkungen verschiedener Joinentypen
Die Leistung verschiedener Jointypen variiert erheblich und hängt weitgehend von der Größe der Tabellen, der Indizierungsstrategie und des verwendeten Datenbanksystems ab.
INNER JOIN
S am effizientesten, insbesondere mit geeigneten Indizes für die Join -Spalten. Die Datenbank kann die Abfrage optimieren, indem sie schnell übereinstimmende Zeilen identifiziert werden.INNER JOIN
S, da die Datenbank benötigt, um alle Zeilen aus mindestens einer Tabelle zu verarbeiten, auch wenn keine Übereinstimmungen vorhanden sind. Die Verarbeitung von NULL
fügt auch Overhead hinzu. Eine ordnungsgemäße Indexierung kann diese Leistungsauswirkungen erheblich mindern.CROSS JOIN
ES sind im Allgemeinen am wenigsten effizient, da sie ein kartesisches Produkt erstellen, was zu einem deutlich größeren Ergebnissatz als die ursprünglichen Tabellen führt. Dies ist rechnerisch teuer und sollte vermieden werden, es sei denn, dies ist absolut erforderlich. Optimierungsstrategien wie die Indexierung der Join -Spalten, die Verwendung geeigneter Abfragen und die Optimierung von Tabellenstrukturen sind entscheidend für die Verbesserung der Leistung aller Join -Typen, insbesondere jedoch für LEFT
, RIGHT
und FULL OUTER JOIN
. Die Auswahl des Join -Typs sollte immer in Einklang mit der Notwendigkeit vollständiger Daten im Vergleich zu Leistungsüberlegungen ausgeglichen werden.
Das obige ist der detaillierte Inhalt vonWas sind die verschiedenen Arten von Verknüpfungen in SQL (inner, links, rechts, voll, Kreuz)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!