Heim > Datenbank > MySQL-Tutorial > Warum gibt mein LEFT OUTER JOIN mehr Zeilen zurück, als in der linken Tabelle vorhanden sind?

Warum gibt mein LEFT OUTER JOIN mehr Zeilen zurück, als in der linken Tabelle vorhanden sind?

Barbara Streisand
Freigeben: 2025-01-25 01:31:09
Original
812 Leute haben es durchsucht

Why Does My LEFT OUTER JOIN Return More Rows Than Are in the Left Table?

Unerwartete Zeilenzahlen in linken Außenverbindungen

verstehen

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>
Nach dem Login kopieren

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

im Ausgang mehrmals angezeigt werden. Dies erklärt die erhöhte Zählzahl.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage