Behebung des Problems fehlender 0-Zählungen in der MySQL-COUNT-Abfrage
Beim Versuch, die Anzahl der Abonnements für jeden Kunden zu berechnen, kommt es häufig vor Es tritt das Problem auf, dass die Abfrage nur Zählwerte für Kunden zurückgibt, die Einträge in einer zugehörigen Tabelle haben. Um dieses Problem anzugehen und Kunden ohne Abonnements einzubeziehen, ist ein alternativer Ansatz erforderlich.
Stellen Sie sich das folgende Szenario vor: Sie haben zwei Tabellen, Employee und mailingSubscriptions. Die Employee-Tabelle enthält Informationen über Mitarbeiter, während die mailingSubscriptions-Tabelle Details zu ihren Abonnements speichert.
Um die Anzahl der Abonnements für jeden Mitarbeiter zu erhalten, wäre eine einfache Abfrage:
SELECT COUNT(c.Name) FROM Employee c INNER JOIN mailingSubscriptions AS m ON c.Name = m.EmployeeName;
Allerdings , diese Abfrage gibt nur Ergebnisse für Mitarbeiter zurück, die mindestens ein Abonnement haben. Um Mitarbeiter ohne Abonnements einzubeziehen und 0-Zählungen anzuzeigen, bietet MySQL eine weitere Lösung: Left Join.
SELECT c.Name, COUNT(m.MailId) FROM Employee c LEFT JOIN mailingSubscriptions AS m ON c.Name = m.EmployeeName GROUP BY c.Name;
In dieser überarbeiteten Abfrage verwenden wir einen Left Join, um die Tabellen „Employee“ und „mailingSubscriptions“ zu verbinden. Der LEFT JOIN-Operator stellt sicher, dass alle Zeilen aus der Employee-Tabelle im Ergebnis enthalten sind, auch wenn sie keine übereinstimmenden Zeilen in der mailingSubscriptions-Tabelle haben.
COUNT(m.MailId) gibt die Anzahl der Abonnements für jedes zurück Mitarbeiter. Indem wir die Ergebnisse nach c.Name gruppieren, können wir eine Zählung für jeden Mitarbeiter erhalten, auch für diejenigen, die keine Abonnements haben.
Diese angepasste Abfrage bietet eine umfassendere Ansicht der Daten und zeigt sowohl die Anzahl der Abonnements für Mitarbeiter mit Einträgen in Mailing-Abonnements und 0 zählt für Mitarbeiter ohne Einträge.
Das obige ist der detaillierte Inhalt vonWie füge ich Nullzählungen in MySQL COUNT-Abfragen für verwandte Tabellen hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!