Se il modulo di prenotazione richiede $inizio e $fine/orari per la prenotazione, questa query indicherà quali laptop sono disponibili nel periodo specificato da queste due date:
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)
I primi due between
clausole troveranno tutti i laptop le cui date di inizio/fine non rientrano nelle date di inizio/fine richieste - es. sono riservati, ma sono disponibili nell'intervallo di tempo specificato. Il controllo nullo troverà tutti i laptop che non hanno prenotato affatto. E il controllo types.id limita la ricerca ai soli laptop.