2011-12-06 53 views
0

我有以下MySQL代碼:MySQL的包括數不計數返回行零

SELECT COUNT(e.eid) AS cnt, e.c_id, c.cdesc 
FROM e 
JOIN c on c.c_id = e.c_id 
GROUP by c.c_id 

不幸的是,count不考慮行這是0,因此,例如C_ID可能有10行,但只9顯示(因爲其中一個e_id的計數爲零)。

我試過LEFT JOINRIGHT JOIN都沒有成功。有沒有人有任何其他建議?

+0

你能附上數據兩個C和E?可能有一個表沒有10行 – ajreal

+0

它實際上是e.eid的空值,它們被省略,而不是0。你想要一個計數,其中e和c記錄對於同一個c_id是否存在,還是有可能記錄存在於一個表上而不是另一個上? –

+0

@ajreal不用擔心,我想我設法解決它! – TronCraze

回答

2

我懷疑你需要的是這樣的:

SELECT COUNT(*) AS cnt, c.c_id, c.cdesc 
FROM c 
LEFT JOIN e on c.c_id = e.c_id 
GROUP by c.c_id 
0

用途:

SELECT COUNT(*) AS cnt, e.c_id, c.cdesc 
FROM e 
JOIN c on c.c_id = e.c_id 
GROUP by c.c_id 
1
SELECT COUNT(e.eid) AS cnt, e.c_id, c.cdesc 
FROM c 
left JOIN e on c.c_id = e.c_id 
GROUP by c.c_id 
+0

如果e記錄不存在,則e.c_id將爲空(e.eid) - 主選擇中的count(*)和c.c_id將(可能)更好。 –