予約フォームで予約の$startと$endの日付/時刻の入力を求められた場合、このクエリは、これら2つの日付で指定された期間中に使用可能なラップトップを示します。
SELECT items.id, items.name
FROM items
LEFT JOIN types ON items.type = types.id
LEFT JOIN reservations ON reservations.item_id = items.id
WHERE (((reservations.endDate NOT between $start AND $end) and
(reservations.startDate NOT between $start AND $end)) or
(reservations.id IS NULL)) and
(types.id = $laptop_type_id)
最初の2つのbetween
句は、開始日/終了日が要求された開始/終了日と一致しないラップトップを検索します-例:それらは予約されていますが、指定された時間範囲で利用可能です。 nullチェックは、まったく予約されていないラップトップを検出します。また、types.idチェックは、検索をラップトップのみに制限します。