Heim Datenbank MySQL-Tutorial Warum gibt mein T-SQL LEFT JOIN weniger Zeilen als erwartet zurück?

Warum gibt mein T-SQL LEFT JOIN weniger Zeilen als erwartet zurück?

Jan 04, 2025 am 12:32 AM

Why is my T-SQL LEFT JOIN Returning Fewer Rows Than Expected?

Warum liefert Ihr T-SQL Left Join nicht das erwartete Ergebnis?

In der bereitgestellten SQL-Abfrage, obwohl dazwischen ein LEFT JOIN verwendet wird Bei zwei Tabellen (#appSteps und #appProgress) werden statt der erwarteten drei nur zwei Zeilen zurückgegeben. Um die Ursache für dieses unerwartete Verhalten zu ermitteln, analysieren wir die Abfrage und ihre Komponenten.

Die LEFT JOIN-Operation zielt darauf ab, alle Zeilen aus der linken Tabelle (#appSteps) zurückzugeben, auch wenn sie keine entsprechenden Übereinstimmungen enthalten die richtige Tabelle (#appProgress). Die Abfrage enthält jedoch eine Bedingung in der WHERE-Klausel, die die NULL-Zeilen aus #appSteps herausfiltert:

where s.section is not null
Nach dem Login kopieren

Diese Bedingung begrenzt den Ergebnissatz versehentlich auf Zeilen, in denen #appSteps.section effektiv ungleich NULL ist Konvertieren des LEFT JOIN in einen INNER JOIN. Die Zeilen mit NULL-Werten in #appSteps.section werden ausgeschlossen, was dazu führt, dass die erwartete dritte Zeile fehlt.

Um dieses Problem zu beheben, sollte die Bedingung in die ON-Bedingung des LEFT JOIN verschoben werden:

Left Join #appProgress P   On  S.stepId = P.stepId 
                           And P.appId = 101
Nach dem Login kopieren

Durch die Angabe der Bedingung in der ON-Klausel wird sie Teil der Join-Kriterien und stellt sicher, dass nur übereinstimmende Zeilen aus #appSteps von #appProgress abgerufen werden. Folglich ruft der LEFT JOIN weiterhin alle Zeilen von #appSteps ab, einschließlich derjenigen mit NULL-Werten, unabhängig davon, ob sie mit #appProgress übereinstimmen.

Mit diesem Ansatz gibt die Abfrage wie ursprünglich die gewünschten drei Zeilen zurück beabsichtigt.

Das obige ist der detaillierte Inhalt vonWarum gibt mein T-SQL LEFT JOIN weniger Zeilen als erwartet zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker Reduzieren Sie die Verwendung des MySQL -Speichers im Docker Mar 04, 2025 pm 03:52 PM

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Mar 19, 2025 pm 03:51 PM

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung?

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen Mar 04, 2025 pm 04:01 PM

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen

Was ist SQLite? Umfassende Übersicht Was ist SQLite? Umfassende Übersicht Mar 04, 2025 pm 03:55 PM

Was ist SQLite? Umfassende Übersicht

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin) Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin) Mar 04, 2025 pm 03:54 PM

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin)

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung Mar 04, 2025 pm 03:49 PM

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung

Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)? Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)? Mar 18, 2025 pm 12:00 PM

Wie sichere ich mich MySQL gegen gemeinsame Schwachstellen (SQL-Injektion, Brute-Force-Angriffe)?

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Mar 18, 2025 pm 12:01 PM

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen?

See all articles