我一直在搜索谷歌的答案,我很確定它比我更容易,我想學習正確的方式來做到這一點。我有一個表emails_sent
,我選擇計數和按列分組。每行有3 type
- 「確認」,「1天」和「同一天」之一。我也在某個日期前完成這個任務。所以我們可以說,這裏是一個例子查詢我選擇今天:從一個MySQL表中選擇,即使計數爲0,返回計數(id)
SELECT Count(id) AS count,
type
FROM emails_sent
WHERE Date_format(date, '%Y-%m-%d') = '2013-03-29'
GROUP BY type
ORDER BY type;
這是它返回:
+-------+---------+ | count | type | +-------+---------+ | 32 | confirm | | 4 | 1day | +-------+---------+
這是偉大的,但也有第三個「型」出現這種情況今天有0條記錄,但我需要它來計算,即使它是0.
我也試着創建一個第二個表,只有這3個「類型」,並使用正確的連接,但它仍然不會拉0計數。這就是我對兩張桌子做的事情:
SELECT t.type,
Count(s.id) AS count
FROM emails_sent s
RIGHT JOIN email_types t
ON s.type = t.type
WHERE Date_format(s.date, '%Y-%m-%d') = '2013-03-29'
GROUP BY t.type;
我確定這只是簡單的東西,我錯過了。
無法將行添加到不存在的查詢。 SQL方面唯一的解決方案是擁有一個你期望的所有值的表格,並加入到這個表格中。一種解決方案可能是選擇所有類型的唯一值,然後將其加入到子查詢集合函數中。 –