una query tipo questa potrebbe andare bene?
codice:
SELECT tavolo, dataora
FROM prenotazione
WHERE tavolo = id_tavolo_prenotato and dataora <= DATE_ADD('data e ora scelta dal cliente', INTERVAL 2 HOUR)
ORDER BY dataora DESC
LIMIT 1
"id_tavolo_prenotato" arriverà dalla scelta del cliente così come "data e ora scelta dal cliente" (quest'ultima deve avere il formato AAAA-MM-DD HH:mm:ss, ad esempio 2014-11-08 09:00:00)
se non ottieni un risultato, il tavolo è prenotabile, se invece ottieni dei record potrai dire al cliente quando si libera il tavolo (basta che aggiungi due ore al campo dataora che ti ha restituito la query)