Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/12/2015, 12:41
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta MySQL Habitaciones Hotel

Tengamos claro que además del JOIN, tienes tres condiciones obligatorias en tu consutla:
Código MySQL:
Ver original
  1. WHERE tbl_fechas_habitaciones.fechas BETWEEN '2015-12-18' AND '2015-12-28'
  2. AND tbl_hotel.intEstado = 1
  3. AND tbl_habitaciones_hotel.intEstado = 1
  4. AND tbl_hotel.idProvincia = 43
Esto es importante porque sin ver los datos completos de los dos casos que mencionas es ,imposible saber si esos casos cumplen estas condiciones... SI no las cumplen, simplemente no los devolverá, y eso no sería un error.

Por eso necesitamos los datos reales.

Por otro lado, dos consejos iniciales: 1) Aprende a usar alias para las tablas. Si usas los nombres completos de las mismas en el SELECT se vuelve ilegible. 2) Pon las tablas en el orden jerarquico correcto. De las mas importante a la tabla dependiente final. NO se ponen en cualquier orden.

Ejemplo:

Código MySQL:
Ver original
  1.     FH.idFecha_Habitacion,
  2.     FH.refHabitacion,
  3.     FH.fechas,
  4.     HO.strNombre,
  5.     HO.intCategoria,
  6.     HH.refTipo_Habitacion,
  7.     HH.refImagenes,
  8.     HH.intEstado,
  9.     HH.intNumero_Habitacion,
  10.     HH.refHotel,
  11.     HH.id_Habitacion,
  12.     HO.idHotel,
  13.     HH.refUsuario,
  14.     HH.intPrecio_Especial,
  15.     HH.intPrecio_Alta,
  16.     HH.intPrecio_Media,
  17.     HH.intPrecio_Baja,
  18.     HH.strDescuento,
  19.     HH.intDescuento_Estado,
  20.     HH.intPromocion,
  21.     HH.strPromocion_Contenido,
  22.     HH.strDescripcion,
  23.     HH.intAdultos,
  24.     HH.intNinos,
  25.     HH.intBebes,
  26.     HO.intEstado,
  27.     HO.dblLatitud,
  28.     HO.dblLongitud,
  29.     HO.idProvincia,
  30.     HO.strPoblacion,
  31.     HO.strResumen,
  32.     HO.intNumero_Habitaciones,
  33.     HO.strEmail,
  34.     HO.strTelefono
  35.     tbl_hotel HO
  36.         INNER JOIN
  37.     tbl_habitaciones_hotel HH ON HH.refHotel = HO.idHotel
  38.         INNER JOIN
  39.     tbl_fechas_habitaciones FH ON FH.refHabitacion = HH.id_Habitacion
  40.     FH.fechas BETWEEN '2015-12-18' AND '2015-12-28'
  41.         AND HO.intEstado =  HH.intEstado
  42.         AND HO.intEstado = 1
  43.         AND HO.idProvincia = 43
  44. GROUP BY FH.refHabitacion

Solo me asalta una duda... ¿Realmente creas un registro en la tabla "tbl_fechas_habitaciones" por cada día reservado? ¿Es correcto? ¿No es un registro con periodo desde/hasta en la reserva?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)