Buenas,
Tengo que hacer una consulta que regrese los datos de los "huespedes" de un hotel que tengan reservas para una fecha concreta.
En la base de datos de prueba e la tabla reservas hay dos registros que coinciden con esa fecha, uno para el Hotel numero 1 y otro para el numero 6.
El numero 1 la reserva tiene 2 huespedes registrados y en el 6 uno solo
Hoy tengo hecho esto:
Código SQL:
Ver originalUSE Hoteles;
SELECT PersonaEmail, PersonaNombre, PersonaApellidoPaterno, idHabitacion
FROM Personas, Habitacion, ReservaHuespedes, ReservasHabitaciones
WHERE
Personas.PersonaEmail = ReservaHuespedes.ReservaHuespedEmail
AND Habitacion.idHabitacion = ReservasHabitaciones.ReservaHabitacionIdHabitacion
AND Habitacion.idHotel = 1
Si ejecuto laconsulta, el resultado esperado es una tabla asi:
email/ nombre / apellido / habitacion
-------------------------------------------
email1/ usu1 / apellido1 / hab1
email2/ usu2/ apellido2 / hab1
Eso funciona correctamente y obtengo el resultado correcto, el problema me surje cuando quiero agregarle un AND mas quedandome asi:
Código SQL:
Ver originalUSE Hoteles;
SELECT PersonaEmail, PersonaNombre, PersonaApellidoPaterno, idHabitacion
FROM Personas, Habitacion, ReservaHuespedes, ReservasHabitaciones, [B]Reserva[/B]
WHERE
Personas.PersonaEmail = ReservaHuespedes.ReservaHuespedEmail
AND Habitacion.idHabitacion = ReservasHabitaciones.ReservaHabitacionIdHabitacion
AND Habitacion.idHotel = 1
AND Reserva.ReservaFechaEntrada='2010-10-10'
Es en la tabla "Reserva" que se guarda la fecha de entrada, con esa sentencia SQL yo deberia poder obtener el mismo exacto resultado de la tabla anterior sin embargo cuado la ejecuto obtengo el producto cartesiano de la consulta
email/ nombre / apellido / habitacion
-------------------------------------------
email1/ usu1 / apellido1 / hab1
email2/ usu2/ apellido2 / hab1
email1/ usu1 / apellido1 / hab1
email2/ usu2/ apellido2 / hab1
No entiendo que estoy haciendo mal, cualquier ayuda es bienvenida