MySQL count in der gleichen Tabelle, einschließlich der null-Werte zählen
Habe ich diese Struktur der Tabelle mit den Daten:
INSERT INTO `test` (`id`, `email`, `id_user_ref`, `name`) VALUES
(1, '[email protected]', NULL, 'Mike'),
(2, '[email protected]', '1', 'Jhonny'),
(3, '[email protected]', '1', 'Michael'),
(4, '[email protected]', '2', 'Jorhe'),
(5, '[email protected]', '3', 'Mia');
Brauche ich um zu zählen id_user_ref für alle Benutzer mit dieser Abfrage:
SELECT id, COUNT(name) AS refNr FROM test GROUP BY id_user_ref
HAVING id_user_ref IS NOT NULL;
Funktioniert es, aber das problem ist, dass ich brauche, um alle Ergebnisse, auch wenn die Zählung Ergebnis ist 0.
Ich habe versucht, mehrere left joins mit der gleichen Tabelle, aber ohne Erfolg.
Die Ausgabe sollte sein:
id refNr
1 2
2 1
3 1
4 0
5 0
- Sie wollen zählen, wie viele user mike eingeladen? dann läuft man in einen inner-join aus der Tabelle zu sich selbst 🙂
- Was ist die gewünschte Ausgabe, die Sie erhalten möchten aus dieser Abfrage?
- ich muss wissen, wie für jeden Menschen, wie viele Personen haben Ihre id-ref einschließlich 0
- was?
- ich fügte hinzu, das erwartete Ergebnis zu der Frage
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
SQL Fiddle-DEmo
Dadurch erhalten Sie:
ON t1.id = t2.id_user_ref
nicht macht keinen Sinn für mich. Diese Spalten arnt gleich!?id
ist die id des Benutzers, der Spalteid_user_ref
ist eine Referenz-id auf dieid
Spalte, der Benutzer ist auf der Suche nach einem Weg, um die Anzahl der referenzierten ids, die von jedemid
mit 0 für diejenigen, die nicht über eine Referenz. Also die Art und Weise, dies zu tun ist, umLEFT JOIN
die gleiche Tabelle, wie das, was ich in meiner Abfrage.Können Sie versuchen, diese ?
Sql-Demo