In linea teorica, se il database e' MySQL, con il comando mysql_list_tables() ottieni l'elenco di tutte le tabelle esistenti all'interno di un database, quindi e' possibile creare dinamicamente una o piu' query a seconda dei dati che ti servono. Se all'interno delle varie tabelle i nomi dei campi cambiano, puoi usare la funzione mysql_list_fields() per elencare tutti i campi di ogni tabella. Nel caso in cui ci siano piu' database, analogamente, puoi usare mysql_list_dbs().
Come vedi se lavori in MySQL c'e' moltissima flessibilita' e, sebbene poco pratica, la necessita' di creare una tabella per ogni hotel non risulta troppo d'intralcio alla ricerca avanza di dati in ognuno di essi.

Discorso diverso se si tratta di qualche altro database, perche' non e' garantito che esistano funzioni analoghe a quelle che ti ho elencato, senza le quali, trattandosi di un migliaio di tabelle, diventa un'impresa titanica. Oltre a non essere dinamica, visto che se domani arriva un nuovo hotel, tu devi aggiornare a mano le query per aggiungere la relativa tabella, mentre tramite le funzioni di cui sopra il tutto e' automatico.

^_^