我确信必须有一种相对简单的方法来做到这一点,但它现在正在逃避我。假设我有一个这样的SQL表:
+-----+------+-----+-----+
|type |value | Monthly |
+=====+======+=====+=====+
| a | 5 | Jan | << a,Jan
+-----+------+-----+-----+
| a | 3 | Feb | << a,Feb
+-----+------+-----+-----+
| a | 7 | April | << a,April
+-----+------+-----+-----+
我按类型和月份对我的查询进行分组,假设我从jan到4月搜索值,在这种情况下,March doenst有任何值,但我仍然希望它显示为0,这样做怎么办? :
+-----+------+-----+-----+
|type |value | Monthly |
+=====+======+=====+=====+
| a | 5 | Jan | << a,Jan
+-----+------+-----+-----+
| a | 3 | Feb | << a,Feb
+-----+------+-----+-----+
| a | 0 | Mar | << a,Mar
+-----+------+-----+-----+
| a | 7 | April | << a,April
+-----+------+-----+-----+
答案 0 :(得分:2)
您需要一个包含月份列表的表格(例如month_id,month_name)。然后你可以这样做:
SELECT t.*, m.* FROM months m LEFT JOIN table t ON m.month_id = t.month_id
否则,查询无法知道“March”之类的内容。
答案 1 :(得分:0)
在sql中进行如下查询:
SELECT * FROM table WHERE (value='0' OR value='yourcondition') AND..