我有一张叫预订的桌子,它包含每辆车的所有预订。我有一个 reservationStatus 字段,表示 1 = 已安排 2 = 待处理,0 = 已取消。
所以我想根据当前的待处理记录从表中选择下一个预订日期。
所以当我运行这段代码时
SELECT dateFrom, dateTo FROM reservation WHERE reservationStatus = 2
这将给我当前未决的保留。现在从这里我想返回dateFrom
字段小于或等于前一个的第一条记录dateTo
?
这可以在一个选择语句中完成吗?我知道它可以使用 2 个单独的语句和一些 php 来完成,但我想知道它是否可以在一个查询中用 MySql 编写?
编辑 - 新添加到问题中
这就是我用 2 个查询和一些 PHP 解决它的方法。
$sql = $db->query('SELECT dateTo FROM reservation WHERE Vehicle_id='. $id . ' AND reservationStatus = 2 LIMIT 1 ');
$first = $sql->fetch_assoc();
$sql->free();
$sql = $db->query('SELECT dateFrom FROM reservation WHERE Vehicle_id='. $id . ' AND reservationStatus = 1 AND (dateFrom > \''.$first['dateTo'] .'\') ORDER BY dateFrom ASC ');
$row = $sql->fetch_assoc();
$month = strtotime($first['dateTo']);
$end = strtotime($row['dateFrom']);