SQL查询如何在WHERE子句中选择数据甚至标准不匹配

我相信必须有一个相对简单的方法来做到这一点,但它现在正在逃避我。假设我有一个这样的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    
+-----+------+-----+-----+
    
已邀请:
您需要一个包含月份列表的表(例如month_id,month_name)。然后你可以做这样的事情:
SELECT t.*, m.* FROM months m LEFT JOIN table t ON m.month_id = t.month_id
否则,查询无法知道存在“March”之类的内容。     
在sql中使您的查询如下:
SELECT * FROM table WHERE (value='0' OR value='yourcondition') AND..
    

要回复问题请先登录注册