Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

[SOLUCIONADO] Problema con consulta SQL con multiples tablas

Estas en el tema de Problema con consulta SQL con multiples tablas en el foro de Bases de Datos General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/11/2016, 10:03
Avatar de Hyemin  
Fecha de Ingreso: agosto-2014
Mensajes: 147
Antigüedad: 10 años, 3 meses
Puntos: 0
Problema con consulta SQL con multiples tablas

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 original
  1. USE Hoteles;
  2. SELECT PersonaEmail, PersonaNombre, PersonaApellidoPaterno, idHabitacion
  3. FROM Personas, Habitacion, ReservaHuespedes,  ReservasHabitaciones
  4. WHERE
  5. Personas.PersonaEmail = ReservaHuespedes.ReservaHuespedEmail
  6. AND Habitacion.idHabitacion = ReservasHabitaciones.ReservaHabitacionIdHabitacion
  7. 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 original
  1. USE Hoteles;
  2. SELECT PersonaEmail, PersonaNombre, PersonaApellidoPaterno, idHabitacion
  3. FROM Personas, Habitacion, ReservaHuespedes,  ReservasHabitaciones, [B]Reserva[/B]
  4. WHERE
  5. Personas.PersonaEmail = ReservaHuespedes.ReservaHuespedEmail
  6. AND Habitacion.idHabitacion = ReservasHabitaciones.ReservaHabitacionIdHabitacion
  7. AND Habitacion.idHotel = 1
  8. 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
  #2 (permalink)  
Antiguo 13/11/2016, 15:07
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Problema con consulta SQL con multiples tablas

Primero usa joins explicitos en lugar de los implicitos, segundo cuales son los campos de la tabla reserva aqui parece ser que cuando le dices que te regrese con un campo fecha hay mas de un registro que cumple con esa condicion, revisa tus datos
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: multiples, sql, tabla, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:33.