PHP:根据不同表格

时间:2015-05-25 12:22:05

标签: php mysql sql join multiple-tables

我创建了一个页面,可以在库中预订房间。当用户来到并取得密钥时,其条目的“签出”列将更新为“1”。用户可能迟到最多15分钟。 15分钟后,预订将被删除,以便其他用户可以预订房间。

room_reservation有一个名为reservation_id的列。此列中的数字用于另外两个表中。持续时间,预订所有者和一些其他信息存储在此表中。

reservation_checked_out的列checked_out(默认为0)保留值0或1.另一列为entity_id,其中存储了预留的信息钥匙已经退房了。此表中的Entity_idreservation_id中的table room_reservation匹配。

表格reservation_datetime保留在reservation_datetime_value列中,用于预订时和预订的entity_id列。同样:此表中的entity_idreservation_id中的table room_reservation匹配。

如果表room_reservation中没有签出密钥但是预订在15分钟前在表reservation_checked_out.checked_out中开始,我如何删除表reservation_datetime.reservation_datetime_value中的预订?

我对如何使这项工作有任何想法?

1 个答案:

答案 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作业执行此操作。