Während die linken Außenverbindungen so ausgelegt sind, dass sie alle Zeilen aus der linken Tabelle zurückgeben, kann das Ergebnissatz manchmal größer sein als erwartet. Dies geschieht aufgrund eines Schlüsselmerkmals dafür, wie die linke Außenverbindung funktioniert.
Im Gegensatz zu einer einfachen Annahme, dass unerreichte Zeilen aus der linken Tabelle einfach Nullwerte in den Spalten der rechten Tabelle aufweisen, enthält ein linker äußerer Join tatsächlich alle -Anpassungszeilen aus beide
Tabellen. Wenn eine einzelne Zeile in der linken Tabelle mehrere Zeilen in der rechten Tabelle übereinstimmt, enthält das Ergebnis mehrere Kopien dieser linken Tabellenzeile. Dies ist ähnlich wie sich ein innerer Join verhält, was zu einer höheren Anzahl der Reihen führt als erwartet.Betrachten Sie diese SQL -Abfrage:
<code class="language-sql">SELECT SUSP.Susp_Visits.SuspReason, SUSP.Susp_Visits.SiteID FROM SUSP.Susp_Visits LEFT OUTER JOIN DATA.Dim_Member ON SUSP.Susp_Visits.MemID = DATA.Dim_Member.MembershipNum</code>
SUSP.Susp_Visits
Beachten Sie, dass nur Spalten aus DATA.Dim_Member
ausgewählt werden. Aufgrund des Potenzials für mehrere Übereinstimmungen in SUSP.Susp_Visits
kann jede Zeile in
SELECT
Wenn Sie nur Daten aus der linken Tabelle benötigen und doppelte Zeilen vermeiden möchten, ist keine linke äußere Verbindung erforderlich. Eine einfache Aussage aus der linken Tabelle liefert die erforderlichen Daten ohne die Anzahl der aufgeblasenen Zeilen. Das Verständnis dieses Verhaltens ist entscheidend für die effektive Verwendung von linken äußeren Verknüpfungen und das Erhalten genauer Ergebnisse.
Das obige ist der detaillierte Inhalt vonWarum gibt mein LEFT OUTER JOIN mehr Zeilen zurück, als in der linken Tabelle vorhanden sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!