我创建了一个页面,可以在库中预订房间。当用户来到并取得密钥时,其条目的“签出”列将更新为“1”。用户可能迟到最多15分钟。 15分钟后,预订将被删除,以便其他用户可以预订房间。
表room_reservation
有一个名为reservation_id
的列。此列中的数字用于另外两个表中。持续时间,预订所有者和一些其他信息存储在此表中。
表reservation_checked_out
的列checked_out
(默认为0
)保留值0或1.另一列为entity_id
,其中存储了预留的信息钥匙已经退房了。此表中的Entity_id
与reservation_id
中的table room_reservation
匹配。
表格reservation_datetime
保留在reservation_datetime_value
列中,用于预订时和预订的entity_id
列。同样:此表中的entity_id
与reservation_id
中的table room_reservation
匹配。
如果表room_reservation
中没有签出密钥但是预订在15分钟前在表reservation_checked_out.checked_out
中开始,我如何删除表reservation_datetime.reservation_datetime_value
中的预订?
我对如何使这项工作有任何想法?
答案 0 :(得分:1)
尝试此SQL查询:
DELETE r.* FROM `room_reservation` r INNER JOIN `reservation_checked_out` c ON (c.entity_id = r.reservation_id), `reservation_datetime` d ON (d.entity_id = r.reservation_id) WHERE c.checked_out = 0 AND d.reservation_datetime_value <= NOW() - INTERVAL 15 MINUTE;
您可以通过PHP使用cron作业执行此操作。