Heim > Datenbank > MySQL-Tutorial > Wie füge ich Nullzählungen in MySQL COUNT-Abfragen für verwandte Tabellen hinzu?

Wie füge ich Nullzählungen in MySQL COUNT-Abfragen für verwandte Tabellen hinzu?

Mary-Kate Olsen
Freigeben: 2024-11-29 16:41:14
Original
739 Leute haben es durchsucht

How to Include Zero Counts in MySQL COUNT Queries for Related Tables?

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

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

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!

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