1
我有一个SQL query..My问题一个问题的列表之间是我有日期的列表,如:如何选择日期[不]范围
- 2015年6月23日
- 2015年6月24日
- 2015年6月25日
- 2015年6月26日
- 2015年6月27日
- 2015年6月28日
在名为“days”的表中。
我有另一个表“过滤器”,其中包含的范围在两列的列表:
start | end
--------+---------
2015-06-24 | 2015-06-24
2015-06-26 | 2015-06-27
... | ...
我试图让,结果是:
- 2015-06- 23
- 2015年6月25日
- 2015年6月28日
即不在这些范围内的日期。
我尝试这样做:
SELECT day.date
FROM days, filter
WHERE days.date not between filter.start and filter.end_time
group by day.date
我认为这代码可能做的伎俩,但它似乎它的工作原理,只有当有一个排的过滤器table..In我的案件的范围内,人数不详在开始时。
我还注意到,删除“group by”子句时,结果是一个重复日期列表,每个日期出现一次,每个过滤器验证一次。即在这里:
- 2X 2015年6月23日
- 1X 2015年6月24日
- 2X 2015年6月25日
- 1X 2015年6月26日
- 1X 2015-06- 27
- 2X 2015年6月28日
大江解决方案可能是只选择达到最大值出现的行,但也有我的SQL限制..加上我没有确定这将是最有效的方式。
有人可以帮我这个吗?
非常感谢你,它像一个魅力 – Etienne