所以我有一个现有的Mysql查询,
它非常密集,如下所示:SELECT CURRENT.*, PROGRAMS.NAME
FROM CURRENT
LEFT JOIN PROGRAMS ON CURRENT.PID = PROGRAMS.ID
ORDER BY PID ASC
现在,我想使用此查询来执行其他操作,因为我已经在访问我的数据库。 我有一个名为"TIMEWINDOWS"的第三个表,我将如何使用此查询根据它是否在Start_Time和End_Time之间以及查询中已有的所有其他内容返回一组 tinyint(0 或 1)?
非常感谢您的帮助。
TimeWindows表包含以下内容:
ID int(11) PK
PID int(11) <-- Can join on this from any of the other tables.
ALL_DAY tinyint(1)
START_DATE date
END_DATE date
EARLIEST time
LATEST time
NOTICE int(11)
LATEST time
MAX int(11)
MIN int(11)
PROBABLE_START time
PROBABLE_END time
我想检查它是否在开始和结束日期之间,如果是,则返回布尔值,但我似乎找不到这样做的方法,有人可以帮忙吗?
SELECT CURRENT.*, PROGRAMS.NAME,
CASE WHEN t.ID IS NULL THEN 0 ELSE 1 END AS BetweenStartEnd
FROM CURRENT
LEFT JOIN PROGRAMS ON CURRENT.PID = PROGRAMS.ID
LEFT JOIN TIMEWINDOWS t ON (t.PID = CURRENT.PID
AND DATE_FORMAT(NOW(), '%Y-%m-%d') > START_DATE
AND DATE_FORMAT(NOW(), '%Y-%m-%d') < END_DATE
)
ORDER BY PID ASC
我认为您缺少一些信息来为您提供代码示例,但请查看此页面,它可能会有所帮助:
http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if