【发布时间】:2015-06-01 06:59:08
【问题描述】:
对于房间预订页面,我正在查询 3 个表中的条目。日期时间值在一个表中,如果房间钥匙已被签出,则另一个表保留信息。另一个表保存预订信息。如果当前时间已超过预订时间的开始时间至少 15 分钟,并且尚未签出密钥,则应删除该条目。问题是,它还删除了未来的预订,其中预订的开始时间还没有过去。我的查询如下所示。
SELECT dt.field_reservation_datetime_value
, dt.entity_id
, co.field_reservation_checked_out_value
, co.entity_id
, res.reservation_id
FROM field_data_field_reservation_datetime dt
JOIN field_data_field_reservation_checked_out co
ON co.entity_id = dt.entity_id
JOIN studyroom_reservation res
ON res.reservation_id = co.entity_id
WHERE co.field_reservation_checked_out_value = 0
AND DATE (dt.field_reservation_datetime_value) <= NOW() - INTERVAL 15 MINUTE
现在是上午 9 点 52 分,在接下来的 2 小时 38 分钟内应该不会出现。我得到的是这样的:
知道我可能做错了什么吗?
编辑:添加表格别名并截图
【问题讨论】:
-
查看表别名
-
添加了别名。输出还是一样。我添加了别名(参见上面的编辑帖子)。你是这个意思还是别的意思?
-
哦,我知道,但至少现在可以阅读了。
-
Date 是一个 DATE,NOW() 是一个日期时间。会不会是这个问题?
-
如果您愿意,请考虑遵循以下简单的两步操作: 1. 如果您还没有这样做,请提供适当的 DDL(和/或 sqlfiddle),以便我们可以更轻松地复制问题。 2. 如果您尚未这样做,请提供与步骤 1 中提供的信息相对应的所需结果集。