SUM フィールドの合計と mydate の間の WHERE をクエリする方法ですが、行はまだそこにあります。値の合計を 0 に変更するだけです。以下の説明を確認してください。
名前がcategory_resultとresult_valuesの 2 つのテーブルがあります。
以下は、テーブルcategory_resultの構造と値です。
id name
1 One
2 Two
3 Three
4 Four
5 Five
以下は、テーブルresult_valuesの構造と値です。
id_category_value mydate total
1 2013-04-24 2
2 2013-04-25 3
3 2013-05-10 1
4 2013-06-20 8
5 2013-06-21 3
5 2013-06-22 2
5 2013-06-23 2
私のクエリは次のとおりです。
SELECT c.name, SUM(rv.total) as total_all FROM category_result c
LEFT JOIN result_values rv ON c.id=rv.id_category_value
WHERE rv.mydate >= '2013-05-01' AND rv.mydate <= '2013-07-01'
GROUP BY c.id
そして、以下のような結果が得られます:
name total_all
Three 1
Four 8
Five 7
しかし、私が望むのはそのようなものではなく、大まかに次のような結果になりたいです:
name total_all
One 0
Two 0
Three 1
Four 8
Five 7
名前がまだそこにあることを望んでいましたが、上記の mydate の場所の場合、名前 One と Two は mydate によってリストされていないため、行の値 total_all を null または 0 にする必要があります。
前もって感謝します。