Heim >Datenbank >MySQL-Tutorial >Wie zeige ich Nullzählungen für Mitarbeiter ohne Abonnements in SQL-Abfragen an?
Behebung des SQL-Abfrageproblems: Anzeige von Nullzählungen in der COUNT-Aggregation
Im dargestellten Szenario besteht das Ziel darin, die Abonnementanzahl für alle zu ermitteln Mitarbeiter, auch solche ohne Einträge in der Tabelle der Mailing-Abonnements. Die erste Abfrage mit einem inneren Join ergab nur Zählungen für Mitarbeiter mit übereinstimmenden Datensätzen in der Mailing-Abonnementtabelle, ausgenommen Mitarbeiter ohne Abonnements.
Um dieses Problem zu beheben, sollten Sie die Verwendung eines linken Joins (LEFT JOIN) in der Abfrage in Betracht ziehen. Bei einem Left Join bleiben alle Zeilen der linken Tabelle (Employee) erhalten, auch wenn in der rechten Tabelle (mailingSubscriptions) keine passenden Zeilen vorhanden sind. Die folgende Abfrage integriert einen Left-Join, um das gewünschte Ergebnis zu erzielen:
SELECT c.name, count(m.mailid) FROM Employee c LEFT JOIN mailingSubscriptions m ON c.Name = m.EmployeeName GROUP BY c.name;
Diese überarbeitete Abfrage stellt sicher, dass alle Mitarbeiter in den Ergebnissen enthalten sind, und die COUNT-Aggregation gibt 0 für Mitarbeiter ohne passende Abonnements in den Mailing-Abonnements zurück Tisch. Durch den Outer-Join entfällt die Einschränkung von Inner-Joins, die nur Zeilen mit übereinstimmenden Datensätzen in beiden Tabellen anzeigen.
Durch die Ausführung der geänderten Abfrage mit einem Left-Join zeigt die Tabelle die Abonnementanzahlen für alle Mitarbeiter, einschließlich dieser, korrekt an ohne Abonnements. Dies ermöglicht eine vollständige und genaue Darstellung der Daten, wobei sowohl Mitarbeiter mit als auch ohne Abonnements in der Tabelle „mailingSubscriptions“ berücksichtigt werden.
Das obige ist der detaillierte Inhalt vonWie zeige ich Nullzählungen für Mitarbeiter ohne Abonnements in SQL-Abfragen an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!