Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:从表中获取未包含的日期_Mysql_Sql - Fatal编程技术网

MySQL:从表中获取未包含的日期

MySQL:从表中获取未包含的日期,mysql,sql,Mysql,Sql,请参考这个。该表中缺少2014年9月21日至2014年9月30日的数据 第二个sql是我想要的。如果分配之间没有差异,结果是可以的。但是有了这个区别,我想要0作为输出。因为有些日期没有分配 请帮我解决这个问题 谢谢。像这样试试 SELECT room_id, from_date, to_date, MIN(rooms) rooms FROM( SELECT DISTINCT room_id, from_date, to_date, SUM(IFNULL(rooms,0)) rooms FRO

请参考这个。该表中缺少2014年9月21日至2014年9月30日的数据

第二个sql是我想要的。如果分配之间没有差异,结果是可以的。但是有了这个区别,我想要0作为输出。因为有些日期没有分配

请帮我解决这个问题

谢谢。

像这样试试

SELECT room_id, from_date, to_date, MIN(rooms) rooms FROM(

SELECT DISTINCT room_id, from_date, to_date, SUM(IFNULL(rooms,0)) rooms 
FROM room_allotment 
WHERE (from_date BETWEEN '2014-09-21' AND '2014-09-29'  and
     to_date BETWEEN '2014-09-21' AND '2014-09-29' ) AND room_id = '1'
GROUP BY room_id 
UNION ALL
SELECT DISTINCT room_id, from_date, to_date, SUM(IFNULL(rooms,0)) rooms 
FROM room_allotment 
WHERE (from_date BETWEEN '2014-09-21' AND '2014-09-29'  and
     to_date BETWEEN '2014-09-21' AND '2014-09-29' ) AND room_id = '1'
GROUP BY room_id
)r
GROUP BY room_id

感谢所有关注我问题的人。目前看来,在数据库方面似乎没有更好的解决方案。因此,我在PHP中通过循环日期并检查数据库中的特定日期来完成这项工作。我认为这不会是一个大的性能问题,因为通常日期范围很小

根据问题,这不是答案。但我会把它标记为答案


谢谢

您希望这样选择房间id,从房间分配中选择房间日期,其中“2014-09-05”介于从日期和到日期之间,“2014-10-05”介于从日期和到日期之间;谢谢@Sathish。但在sql中,您只是选择了不存在的数据。在我的情况下,我选择的数据介于2014-09-15和2014-10-05之间。但我不知道2014-09-21至2014-09-30的天气数据。在这种情况下,我需要零作为结果。