Heim >Datenbank >MySQL-Tutorial >Wie kombiniere ich mehrere SQL SELECT-Anweisungen, um Aufgaben und verspätete Aufgaben zu zählen?
Kombinieren mehrerer SQL-SELECT-Anweisungen: Ein praktisches Beispiel
Diese Anleitung zeigt, wie Sie die Ergebnisse mehrerer SQL-SELECT
-Anweisungen effizient in einer einzigen, umfassenden Tabelle kombinieren. Als Beispiel verwenden wir eine Aufgabenverwaltungsdatenbank. Jeder Aufgabendatensatz enthält Details wie Fristen, Tage bis zum Abgabetermin (PALT) und Alter (Tage seit der Erstellung). Ziel ist es, einen Bericht zu erstellen, der für jede Person die Gesamtzahl ihrer Aufgaben und die Anzahl der überfälligen Aufgaben anzeigt.
Einzelne Abfragen zum Zählen der Gesamtaufgaben und verspäteten Aufgaben könnten wie folgt aussehen:
<code class="language-sql">SELECT ks, COUNT(*) AS "Total Tasks" FROM Table GROUP BY ks;</code>
<code class="language-sql">SELECT ks, COUNT(*) AS "Overdue Tasks" FROM Table WHERE Age > Palt GROUP BY ks;</code>
Um diese Ergebnisse zusammenzuführen, verwenden wir ein LEFT JOIN
. Dadurch wird sichergestellt, dass alle Personen aus der gesamten Aufgabenanzahl einbezogen werden, auch wenn sie keine überfälligen Aufgaben haben.
<code class="language-sql">SELECT t1.ks, t1."Total Tasks", COALESCE(t2."Overdue Tasks", 0) AS "Overdue Tasks" FROM (SELECT ks, COUNT(*) AS "Total Tasks" FROM Table GROUP BY ks) t1 LEFT JOIN (SELECT ks, COUNT(*) AS "Overdue Tasks" FROM Table WHERE Age > Palt GROUP BY ks) t2 ON t1.ks = t2.ks;</code>
Die Funktion COALESCE
behandelt Fälle, in denen eine Person keine überfälligen Aufgaben hat (was zu NULL
aus LEFT JOIN
führt) und ersetzt NULL
aus Gründen der Klarheit durch 0. In der Abschlusstabelle werden ks
(Personen-ID), „Gesamtaufgaben“ und „Überfällige Aufgaben“ angezeigt. Das LEFT JOIN
stellt sicher, dass alle Personen aufgelistet werden, unabhängig davon, ob sie überfällige Aufgaben haben.
Das obige ist der detaillierte Inhalt vonWie kombiniere ich mehrere SQL SELECT-Anweisungen, um Aufgaben und verspätete Aufgaben zu zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!