我遇到問題。這似乎很容易解決,但實際上我不知道它爲什麼不工作!從表中計數行
我有兩個表:
HOSTS(id, hostgroup_id)
HOSTGROUPS(id, name)
有了這些插入的行:
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
________________________
就這樣,我只是希望計算每個hostgroups主機數目。 這裏是我的SQL查詢:
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
這裏是我的結果:
_____________________
name | count
_____________________
ARM | 2 -- OK
Spark | 0 -- NOPE, INTENDED 1
Pyro | 0 -- OK
ARM | 0 -- NOPE, DUPLICATED ROW
_____________________
最後,這裏就是我在等待:
_____________________
name | count
_____________________
ARM | 2
Spark | 1
Pyro | 0
_____________________
謝謝您的回答傢伙! :)
BY子句添加組的選擇。 (並刪除';'...你的查詢真的執行了嗎?) – jarlh
@jarlh Woops,';'不在原點! – iArcadia