No.
Tu tabla puede ser algo asi:
desde | hasta | id_casa
2014-03-01 | 2014-03-03 | 1
2014-03-06 | 2014-03-09 | 2
2014-03-15 | 2014-03-20 | 1
2014-03-30 | 2014-04-05 | 2
si tu quieres saber, en que fechas esta reservada una casa, por ejemplo la casa 1, entonces usarias esta query:
esa query filtraria tu tabla dejando solo estos registros:
desde | hasta | id_casa
2014-03-01 | 2014-03-03 | 1
2014-03-15 | 2014-03-20 | 1
ahora bien, si tu quieres los registros que corresponden a reservas de cualquier casa en un rango de fechas, por ejemplo entre el 2014-03-02 y 2014-03-08 entonces usas esta query:
Código MySQL:
Ver original(dia_entrada
<= '2014-03-02' AND dia_salida
>= '2014-03-08');
esa query filtraria tu tabla dejando solo estos registros:
desde | hasta | id_casa
2014-03-01 | 2014-03-03 | 1
2014-03-06 | 2014-03-09 | 2
Ahora, tu quieres todos los registros que impide que se reserve una casa determinada en un rango de fechas.
Solo debes juntar las dos condiciones anteriores, y si seguimos con los datos del ejemplo quedaria asi:
Código MySQL:
Ver original(dia_entrada
<= '2014-03-02' AND dia_salida
>= '2014-03-08'));
esa query filtraria tu tabla dejando solo estos registros:
desde | hasta | id_casa
2014-03-01 | 2014-03-03 | 1
como veras, el "truco" esta en aprender a filtrar. Partes de un conjunto de resultados generico, que son todas las filas, luego, debes de a poco, ir filtrando segun condiciones, primero sacas de los resultados aquellos que no sean de la casa, luego a ese conjunto que te queda, le sacas los que no afectan a la reserva, los que te quedan, son aquellos que te interesa.