MySQL:从表中获取未包含的日期
请参考这个。该表中缺少2014年9月21日至2014年9月30日的数据 第二个sql是我想要的。如果分配之间没有差异,结果是可以的。但是有了这个区别,我想要0作为输出。因为有些日期没有分配 请帮我解决这个问题 谢谢。像这样试试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
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的天气数据。在这种情况下,我需要零作为结果。