Ich habe ein Problem. Es scheint einfach zu lösen, aber in der Tat weiß ich nicht, warum es nicht funktioniert!Zeilen zählen von Tabelle
Ich habe zwei Tabellen:
HOSTS(id, hostgroup_id)
HOSTGROUPS(id, name)
Mit diesen eingefügten Zeilen:
HOSTS
________________________
id | hostgroup_id
________________________
1 | 1
2 | 1
3 | 2
4 | NULL -- a host can have no hostgroup
________________________
HOSTGROUPS
________________________
id | name
________________________
1 | ARM
2 | Spark
3 | Pyro
________________________
Damit ich mag nur Anzahl von Hosts in jeder Hostgruppe zählen. Hier ist meine SQL-Abfrage:
SELECT HG.name, COUNT(H.id) AS count
FROM HOSTS H, HOSTGROUPS HG
WHERE H.hostgroup = HG.id
UNION DISTINCT
SELECT HG.name, 0 AS count
FROM HOSTS H, HOSTGROUPS HG
WHERE (H.hostgroup = HG.id) = FALSE
Und hier ist mein Ergebnis:
_____________________
name | count
_____________________
ARM | 2 -- OK
Spark | 0 -- NOPE, INTENDED 1
Pyro | 0 -- OK
ARM | 0 -- NOPE, DUPLICATED ROW
_____________________
Und schließlich ist hier, was ich warte:
_____________________
name | count
_____________________
ARM | 2
Spark | 1
Pyro | 0
_____________________
Vielen Dank für Ihre Antworten Jungs! :)
hinzufügen GROUP BY-Klauseln zu den wählt verwenden können . (Und entfernen Sie das ';' ... Wird Ihre Abfrage wirklich ausgeführt?) – jarlh
@jarlh Woops, das '' '' war nicht hier am Ursprung! – iArcadia