Heim >Datenbank >MySQL-Tutorial >Wie zeige ich Null-Zählungen in MySQL-JOIN-Abfragen an?
Zero Counts in MySQL Count Query anzeigen
Im Bereich der Datenbankverwaltung werden Zählvorgänge häufig zum Abrufen aggregierter Informationen verwendet. Bei der Arbeit mit JOIN-Abfragen kann es jedoch schwierig sein, Nullzahlen anzuzeigen, insbesondere wenn fehlende oder Nullwerte vorhanden sind. Dieses Problem tritt auf, wenn versucht wird, Werte für alle Zeilen in einer Tabelle zu zählen, aber einige Zeilen keine übereinstimmenden Einträge in einer verknüpften Tabelle haben.
Das Problem: Fehlende Nullzählungen
Stellen Sie sich das folgende Szenario vor: Wir haben zwei Tabellen: Employee und mailingSubscriptions. Die Tabelle „mailingSubscriptions“ enthält Abonnementinformationen für Mitarbeiter, wobei jeder Mitarbeiter einen eindeutigen EmployeeName hat. Wir möchten die Anzahl der Abonnements ermitteln, die jedem Mitarbeiter zugeordnet sind, einschließlich der Mitarbeiter ohne Abonnements (d. h. mit Nullzählungen).
Mit der folgenden Abfrage:
Select COUNT(c.Name) From Employee INNER JOIN mailingSubscriptions as m ON c.Name = m.EmployeeName;
Wir rufen nur ab zählt für Mitarbeiter, die mindestens einen Eintrag in der Tabelle mailingSubscriptions haben. Mitarbeiter ohne Abonnements werden von den Ergebnissen ausgeschlossen.
Die Lösung: Link JOIN und GROUP BY
Um dieses Problem zu beheben und Zählungen für alle Mitarbeiter zu erhalten, können wir verwenden eine LEFT JOIN- und eine GROUP BY-Klausel. Ein LEFT JOIN stellt sicher, dass alle Zeilen aus der Employee-Tabelle in die Ergebnisse einbezogen werden, auch wenn es in der mailingSubscriptions-Tabelle keine passenden Zeilen gibt. Die GROUP BY-Klausel gruppiert dann die Ergebnisse nach Mitarbeiternamen, sodass wir die Anzahl der Abonnements für jeden Mitarbeiter zählen können:
SELECT c.name, count(m.mailid) FROM Employee LEFT JOIN mailingSubscriptions as m ON c.Name = m.EmployeeName GROUP BY c.name;
Mit dieser modifizierten Abfrage rufen wir jetzt die Abonnementanzahlen für alle Mitarbeiter ab, einschließlich diejenigen ohne Abonnements. Dies ermöglicht uns einen vollständigen Überblick über die Abonnementdaten der Mitarbeiter, unabhängig von ihrem Abonnementstatus.
Das obige ist der detaillierte Inhalt vonWie zeige ich Null-Zählungen in MySQL-JOIN-Abfragen an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!