Php 两个IF语句和join-MYSQL

Php 两个IF语句和join-MYSQL,php,mysql,if-statement,Php,Mysql,If Statement,我一直在为会议室做一个日程安排。 我有两张桌子: 1) dayplanner:以5分钟为间隔划分一天 值=00:00:00,00:05:00,00:10:00。。。23:55:00 2) 预订:名称、开始和结束 值=[john,12:00:00,12:30:00],[bob,14:00:00,14:45:00]等 我的目标是使用一个查询和两个IF语句,这样我就可以检查starttime以及两者之间的内容 像这样: [时间][预留][中间] 12:00:00对-对 12:05:00对对对对 12

我一直在为会议室做一个日程安排。 我有两张桌子:

1)
dayplanner
:以5分钟为间隔划分一天 值=00:00:00,00:05:00,00:10:00。。。23:55:00

2)
预订
:名称、开始和结束 值=[john,12:00:00,12:30:00],[bob,14:00:00,14:45:00]等

我的目标是使用一个查询和两个IF语句,这样我就可以检查starttime以及两者之间的内容

像这样:

[时间][预留][中间]

12:00:00对-对
12:05:00对对对对

12:35:00假假假

$query = "SELECT *,
          IF(d.dayplanner_time = a.reservations_starttime,'true','false') AS reserved,
          IF(d.dayplanner_time > a.reservations_start  && d.dayplanner_time <  a.reservations_finish,'true','false') AS inbetween
          FROM dayplanner d 
          LEFT JOIN reservations a 
         ON d.day_time = a.reservations_start OR d.dayplanner_time = a.reservations_finish
          WHERE d.dayplanner_time BETWEEN '12:00:00' AND '18:00:00';";
$query=“选择*,
如果(d.dayplanner\u time=a.reservations\u starttime,'true','false')被保留,
如果(d.dayplanner\u time>a.reservations\u start&&d.dayplanner\u time
查询在reserved列中只给出一个true,但没有任何结果。
我希望你能帮我。

你正在将你的时间间隔与预订时间间隔进行匹配,而预订时间间隔的开始或结束时间都是。根据定义,如果时间相等,它们不能大于或小于自身,这意味着您明确地忽略了与时间间隔不完全匹配的保留

比较应该是

SELECT d.dayplanner_time,d.day_time,
      IF(d.dayplanner_time = a.reservations_starttime,'true','false') AS reserved,
      IF(a.reservations_start is null, false, true) AS inbetween
      FROM dayplanner d 
      LEFT JOIN reservations a 
      ON (d.day_time >= a.reservations_start AND d.dayplanner_time <= a.reservations_finish)
      WHERE d.dayplanner_time BETWEEN '12:00:00' AND '18:00:00';
选择d.dayplanner\u时间,d.day\u时间,
如果(d.dayplanner\u time=a.reservations\u starttime,'true','false')被保留,
如果(a.u开始为null、false、true)介于两者之间
来自dayplanner d
左加入预订a
在(d.day\u time>=a.reservations\u start和d.dayplanner\u time上,工作正常
现在我想知道如何填充