Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/08/2013, 02:24
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Unir consultas JOIN BETWEEN

Observa que el principal cambio que he hecho es incluir un paréntesis que una en el filtro los elementos reunidos con OR. Eso tiene que hacerlo a la vez y antes que los demás filtros.
Código MySQL:
Ver original
  1. SELECT * FROM huespedes INNER JOIN reservaciones ON huespedes.id_hab=reservaciones.id_hab
  2. WHERE ((DATE(huespedes.salida) BETWEEN '2013-08-12' AND '2013-08-14')
  3. OR (DATE(reservaciones.entrada) BETWEEN DATE '2013-08-12' AND DATE '2013-08-14'))
  4. AND entregado='0' AND reservaciones.del='0' AND huespedes.del='0' ;

Un par de cosas:
no sé por qué usas JOIN en lugar de INNER JOIN. No es lo mismo y deberías usar INNER JOIN
Por qué aplicas DATE a todos los datos, incluso a los que tienen forma de fecha y no incluyen hora.